Bienvenido a los foros %s

Foro comunidad hispana Dolibarr

Identificarse Registrarse

Cambiar Colunmas presupuesto

Cuestiones sobre cómo utilizar Dolibarr, ayudas sobre las funcionalidades o cualquier cuestión que no está relacionada con un error.
darivo
Novato
Mensajes: 11
Registrado: Jue, 12/06/2014, 11:43

Cambiar Colunmas presupuesto

Mensaje por darivo »

Buenos días.

Estoy usando la V 3.4.1. y tengo alguna pregunta sobre la formación de presupuesto.

Uso Azur como modelo de presupuesto y lo genera con las siguientes columnas
Descripción - IVA - P.U. - Cantidad -Descuento - Base imponible

El problema, es que cuando tengo más de 1 unidad para el producto, no se refleja el precio del mismo después del descuento, lo que ha generado más de una confusión con el cliente al leerlo.

Sería posible tal que:
Descripción - P.U. - Descuento - P. después descuento - Cantidad - Base imponible?

Supongo sería modificar estas líneas, pero no lo tengo nada claro, y antes de tocar......

Código: Seleccionar todo

                                       // VAT Rate (iva)
					if (empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT))
					{
						$vat_rate = pdf_getlinevatrate($object, $i, $outputlangs, $hidedetails);
						$pdf->SetXY($this->posxtva, $curY);
						$pdf->MultiCell($this->posxup-$this->posxtva-1, 3, $vat_rate, 0, 'R');
					}

					// Unit price before discount (P.U.)
					$up_excl_tax = pdf_getlineupexcltax($object, $i, $outputlangs, $hidedetails);
					$pdf->SetXY($this->posxup, $curY);
					$pdf->MultiCell($this->posxqty-$this->posxup-1, 3, $up_excl_tax, 0, 'R', 0);

					// Quantity (cantidad)
					$qty = pdf_getlineqty($object, $i, $outputlangs, $hidedetails);
					$pdf->SetXY($this->posxqty, $curY);
					$pdf->MultiCell($this->posxdiscount-$this->posxqty-1, 3, $qty, 0, 'R');	// Enough for 6 chars

					// Discount on line (descuento)
					if ($object->lines[$i]->remise_percent)
					{
						$pdf->SetXY($this->posxdiscount-2, $curY);
						$remise_percent = pdf_getlineremisepercent($object, $i, $outputlangs, $hidedetails);
						$pdf->MultiCell($this->postotalht-$this->posxdiscount+2, 3, $remise_percent, 0, 'R');
					}

					// Total HT line (Base imponible)
					$total_excl_tax = pdf_getlinetotalexcltax($object, $i, $outputlangs, $hidedetails);
					$pdf->SetXY($this->postotalht, $curY);
					$pdf->MultiCell($this->page_largeur-$this->marge_droite-$this->postotalht, 3, $total_excl_tax, 0, 'R', 0);
Cuál sería la llamada a // Unit price after discount???

Muchas gracias por adelantado!

Avatar de Usuario
Pou42
Jedi
Mensajes: 597
Registrado: Lun, 26/03/2012, 13:13
Ubicación: Malgrat de Mar/Sant Hilari Sacalm

Mensaje por Pou42 »

Buenas.
No se mucho como va esto, pero no solo tienes que poner el calculo y ya esta, mas que nada por que todo tiene su posicion y tu lo que tendrias que hacer es crear una nueva posicion.
Explico lo que yo se para ayudarte en lo que pueda.

Primer tendrias que crear la posicion para que el texto no este uno encima del otro. Yo lo tengo entre las lienas 103 y 122

Código: Seleccionar todo

		// Define position of columns
		$this->posxdesc=$this->marge_gauche+1;
		$this->posxtva=112;
		$this->posxup=126;
		$this->posxqty=145;
		$this->posxdiscount=162;
		$this->posxdiscount2=168; <-- Esta seria la posicion que he creado yo
		$this->postotalht=174;
		if (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT)) $this->posxtva=$this->posxup;
		$this->posxpicture=$this->posxtva - (empty($conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH)?16:$conf->global->MAIN_DOCUMENTS_WITH_PICTURE_WIDTH);	// width of images
		if ($this->page_largeur < 210) // To work with US executive format
		{
			$this->posxpicture-=20;
			$this->posxtva-=20;
			$this->posxup-=20;
			$this->posxqty-=20;
			$this->posxdiscount-=20;
			$this->posxdiscount2=20; <-- Este supongo que sera el espacio para dejar entre el texto :)
			$this->postotalht-=20;
		}
Despues mas abajo entre las lineas 419 y 429 tenemos lo siguiente:

Código: Seleccionar todo

// Discount on line
					if ($object->lines[$i]->remise_percent)
					{
						$pdf->SetXY($this->posxdiscount-2, $curY);
						$remise_percent = pdf_getlineremisepercent($object, $i, $outputlangs, $hidedetails);
						$pdf->MultiCell($this->postotalht-$this->posxdiscount+2, 3, $remise_percent, 0, 'R');
						
                                                 //Esta es la parte que e añadido yo
						$up_excl_tax = pdf_getlineupexcltax($object, $i, $outputlangs, $hidedetails)/$remise_percent = pdf_getlineremisepercent($object, $i, $outputlangs, $hidedetails); <-- Numero 1
						$pdf->SetXY($this->posxdiscount2-2, $curY); <-- Numero 2
						$pdf->MultiCell($this->posxqty-$this->posxup-0.8, 3, $up_excl_tax, 0, 'R', 0);
					}
Numero 1: Es el que da el numero que sale en el PDF. Si te fijas ahora esta aciendo una division, pero no e conseguido que el resultado sea el que quieras, pero casi casi es lo que quieres, solo se tienen que hacer unas pruevas

Numero 2: Este es el que marca la posicion que le hemos dado mas arriba

Solo e tenido el tiempo para hacer esto. Intenta hacer pruevas y haver si lo consigues. Si puedo sacar mas tiempo seguire haciendo pruevas.
Recuerda que aqui solo estoy haciendo el calculo, pero ya veras que la posicion no es correcta. Para mi punto de vista, yo haria primero el calculo y despues ya le buscaria la posicion :D

Si consigues algo, publica las modificaciones, ya que asi ayudamos todos. Tambien por que estoy interesado :mrgreen:
Salu2

Mi Flickr

darivo
Novato
Mensajes: 11
Registrado: Jue, 12/06/2014, 11:43

Mensaje por darivo »

Buenas,

Lo primero muchas gracias por tu ayuda, tienes razón que no salía ubicado en las cordenadas jejejeje

en tu segundo código no me ha funcionado, pero he cambiado la llamada del descuento2 tal que así:

Código: Seleccionar todo

//Modifico Esta es la parte que e añadido yo
                  			$up_excl_tax = (pdf_getlinetotalexcltax($object, $i, $outputlangs, $hidedetails)/$qty); // Numero 1
                  			$pdf->SetXY($this->posxdiscount2, $curY); // Numero 2
                  			$pdf->MultiCell($this->posxqty-$this->posxup-0.8, 3, $up_excl_tax, 0, 'R', 0);
Pero ocurre, que no me hace la división correcta y me pierde decimales por el camino (adjunto foto):

Imagen

Yo pensaba, que directamente al dividir el line total exc tax (la base imponible) entre la cantidad, debía salir el resultado igual que la calculadora.... Pero no. hay una discrepancia.

Alguna idea???

Avatar de Usuario
Pou42
Jedi
Mensajes: 597
Registrado: Lun, 26/03/2012, 13:13
Ubicación: Malgrat de Mar/Sant Hilari Sacalm

Mensaje por Pou42 »

Lo dices por los decimales no???
Si saco un poco de tiempo hare un par de pruevas
Salu2

Mi Flickr

darivo
Novato
Mensajes: 11
Registrado: Jue, 12/06/2014, 11:43

Mensaje por darivo »

si si, exacto

si te fijas, la segunda fila el precio marcado debería ser 347.74 dividido 2 unidades = 173.87 y sin embargo sale 173.5

Y sigo sin encontrar explicación :D