示例#1
0
 public function EliminarAlmacen($id)
 {
     require_once 'clsConexion.php';
     require_once 'clsArticulo.php';
     require_once 'clsMovimiento.php';
     $objCon = new Conexion();
     $objArticulo = new Articulo();
     $objMovimiento = new Movimiento();
     $sql = "update almacen set estado_alm=0 where id_alm=" . $id;
     $correcto = false;
     $arreglo = $objArticulo->DatosArticulosxSubAlmacen($id);
     $break = true;
     $aux;
     for ($i = 0; $i < count($arreglo); $i++) {
         echo $arreglo[$i]["id"] . " artículo <br>";
         echo $arreglo[$i]["cantidad"] . " cantidad <br>";
         echo $arreglo[$i]["almacen"] . " almacen <br><br>";
         $objMovimiento->AgregaMovimientoTrasferencia($arreglo[$i]["id"], $arreglo[$i]["cantidad"], $descripcion, $arreglo[$i]["almacen"], 1);
         $aux .= $arreglo["id"] . " transferido correctamente <br>";
     }
     if ($objCon->Consultar($sql) == !0) {
         $correcto = true;
     }
     echo $aux;
 }
示例#2
0
function EntregarTarjeta($IdLocal, $entregado, $concepto, $IdComprobante = false)
{
    $mov = new Movimiento();
    $mov->SetComprobante($IdComprobante);
    $mov->SetConcepto("Tarjeta: {$concepto}");
    $mov->EntregaEnTienda($IdLocal, $entregado, "TARJETA DE DEBITO");
    $mov->GuardaOperacion();
}
示例#3
0
 public function getIngresosDePropietarioEntreFechas($user_id, $fDesde, $fHasta)
 {
     $criteria = new CDbCriteria();
     $criteria->join = 'join cuenta_corriente cc on cc.id = t.cuenta_corriente_id ' . '      join contrato c on c.id = cc.contrato_id ' . '      join departamento d on d.id = c.departamento_id ' . '      join propiedad p on p.id = d.propiedad_id ' . '      join propietario pp on pp.id = p.propietario_id ';
     $criteria->condition = 'tipo = :tipo and fecha >= :fDesde and fecha < :fHasta and pp.usuario_id = :usuario_id';
     $criteria->params = array(':fDesde' => $fDesde, ':fHasta' => $fHasta, ':usuario_id' => $user_id, ':tipo' => Tools::MOVIMIENTO_TIPO_ABONO);
     $criteria->order = "t.fecha ASC";
     return Movimiento::model()->findAll($criteria);
 }
示例#4
0
 public function destroy($nromovimiento)
 {
     $movimiento = Movimiento::where('nromovimiento', '=', $nromovimiento)->first();
     if ($movimiento->tipo = 'ingreso') {
         Ingreso::where('nromovimiento', '=', $nromovimiento)->delete();
     }
     if ($movimiento->tipo = 'egreso') {
         Egreso::where('nromovimiento', '=', $nromovimiento)->delete();
     }
     Movimiento::where('nromovimiento', '=', $nromovimiento)->delete();
     return Redirect::to('movimientos');
     //Egreso::where('nromovimiento','=',$nromovimiento)->delete();
     //echo Egreso::where('nromovimiento','=',$nromovimiento)->first();
 }
 function genguiaremi()
 {
     if (count($_REQUEST) == 6) {
         $this->view->show('/facturacion/generacionguiaremision.phtml');
     } else {
         $documento = new Documento();
         $ordenVenta = new OrdenVenta();
         $dataGuiaRemision = $_REQUEST['GuiaRemision'];
         $dataGuiaRemision['nombredoc'] = 4;
         $modelpdf = $this->AutoLoadModel('pdf');
         $exitofactura = $modelpdf->listaGuiasEmitidasNoAnuladas($dataGuiaRemision['idordenventa']);
         if (count($exitofactura) == 0) {
             //si usamos esto debemos grabar en la orden de venta
             //$dataOrdenVenta['guiaremision']=1;
             $idordenventa = $dataGuiaRemision['idordenventa'];
             $dataOrdenVenta = $_REQUEST['ordenVenta'];
             $dataOrdenVenta['guiaremision'] = 1;
             $exito = $ordenVenta->actualizaOrdenVenta($dataOrdenVenta, $idordenventa);
             if ($exito) {
                 $id = $documento->grabaDocumento($dataGuiaRemision);
                 $movimiento = new Movimiento();
                 $filtro = " idtipooperacion='1' and idordenventa='" . $idordenventa . "'";
                 $dataMovimiento = $movimiento->buscaMovimientoxfiltro($filtro);
                 if (!empty($dataMovimiento) and $dataMovimiento[0]['iddocumentotipo'] != 1 and $dataMovimiento[0]['iddocumentotipo'] != 2) {
                     $dataM['iddocumentotipo'] = 4;
                     $dataM['serie'] = $dataGuiaRemision['serie'];
                     $dataM['ndocumento'] = $dataGuiaRemision['numdoc'];
                     $dataM['essunat'] = 1;
                     $exito = $movimiento->actualizaMovimiento($dataM, $filtro);
                 }
                 $this->view->show('/facturacion/generacionguiaremision.phtml');
             }
         } else {
             $this->view->show('/facturacion/generacionguiaremision.phtml');
         }
     }
 }
示例#6
0
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
 public function executeIndex(sfWebRequest $request)
 {
     $this->form = new IngresoInventarioForm();
     if ($request->isMethod('POST')) {
         $this->form->bind($request->getParameter('ingreso_inventario'));
         if ($this->form->isValid()) {
             $valores = $this->form->getValues();
             $BitacoraCambios = new BitacoraCambios();
             $BitacoraCambios->setModelo('Inventario');
             $Producto = ProductoQuery::create()->findOneById($valores['Producto']);
             $BitacoraCambios->setDescripcion('Ingreso de Inventario de Producto: ' . $Producto->getDescripcion() . ' con cantidad ' . $valores['Cantidad']);
             $BitacoraCambios->setIp($request->getRemoteAddress());
             $Usuario = UsuarioQuery::create()->findOneById(sfContext::getInstance()->getUser()->getAttribute('usuario', null, 'seguridad'));
             if ($Usuario) {
                 $BitacoraCambios->setCreatedBy($Usuario->getUsuario());
             }
             $Movimiento = new Movimiento();
             $Movimiento->setTipoMovimiento('+');
             $Movimiento->setProveedorId($valores['Proveedor']);
             $Movimiento->setProductoId($Producto->getId());
             $Movimiento->setCantidad($valores['Cantidad']);
             $Movimiento->setPrecio($valores['Precio']);
             $Movimiento->save();
             $BitacoraCambios->save();
             $Comprobacion = InventarioQuery::create()->filterByProductoId($valores['Producto'])->filterByProveedorId($valores['Proveedor'])->findOne();
             if ($Comprobacion) {
                 $Comprobacion->setCantidad($Comprobacion->getCantidad() + $valores['Cantidad']);
                 $anterior = $Comprobacion->getCantidad() * $Comprobacion->getPrecioCompra();
                 $actual = $valores['Cantidad'] * $valores['Precio'];
                 $suma = ($anterior + $actual) / ($valores['Cantidad'] + $Comprobacion->getCantidad());
                 $Comprobacion->setPrecioCompra($suma);
                 $Comprobacion->save();
             } else {
                 $Inventario = new Inventario();
                 $Inventario->setPrecioCompra($valores['Precio']);
                 $Inventario->setProductoId($valores['Producto']);
                 $Inventario->setProveedorId($valores['Proveedor']);
                 $Inventario->setCantidad($valores['Cantidad']);
                 $Inventario->save();
             }
             $this->redirect('inventario/index');
         }
     }
     $this->cinco = InventarioQuery::create()->orderById('DESC')->limit(5)->find();
 }
示例#7
0
 public function executeEntregado(sfWebRequest $request)
 {
     $id = $request->getParameter('id');
     $BitacoraCambios = new BitacoraCambios();
     $BitacoraCambios->setModelo('Pedido Proveedores');
     $Usuario = UsuarioQuery::create()->findOneById(sfContext::getInstance()->getUser()->getAttribute('usuario', null, 'seguridad'));
     $BitacoraCambios->setDescripcion('Cambio de estado de Pedido a Proveedor  a Entregado con id : ' . $id . ' el usuario ' . $Usuario->getNombre());
     $BitacoraCambios->setIp($request->getRemoteAddress());
     $pedido = PedidoProveedorQuery::create()->findOneById($id);
     $pedido->setEstado('Entregado');
     $pedido->save();
     $detalle_pedido = DetallePedidoProveedorQuery::create()->filterByPedidoProveedor($pedido)->find();
     foreach ($detalle_pedido as $det) {
         $Comprobacion = InventarioQuery::create()->filterByProductoId($det->getProductoId())->filterByProveedorId($pedido->getProveedorId())->findOne();
         if ($Comprobacion) {
             $Comprobacion->setCantidad($Comprobacion->getCantidad() + $det->getCantidad());
             $anterior = $det->getCantidad() * $Comprobacion->getPrecioCompra();
             $actual = $det->getCantidad() * $det->getPrecio();
             $suma = ($anterior + $actual) / ($det->getCantidad() + $Comprobacion->getCantidad());
             $Comprobacion->setPrecioCompra($suma);
             $Comprobacion->save();
         } else {
             $Inventario = new Inventario();
             $Inventario->setPrecioCompra($det->getPrecio());
             $Inventario->setProductoId($det->getProductoId());
             $Inventario->setProveedorId($pedido->getProveedorId());
             $Inventario->setCantidad($det->getCantidad());
             $Inventario->save();
         }
         $Movimiento = new Movimiento();
         $Movimiento->setTipoMovimiento('+');
         $Movimiento->setProveedorId($pedido->getProveedorId());
         $Movimiento->setProductoId($det->getProductoId());
         $Movimiento->setCantidad($det->getCantidad());
         $Movimiento->setPrecio($det->getPrecio());
         $Movimiento->save();
     }
     $this->redirect('pedido_proveedor/index');
 }
示例#8
0
 public function movimientosDeMes($mes, $agno)
 {
     $proxMes = $mes + 1;
     $proxAgno = $agno;
     if ($proxMes > 12) {
         $proxMes = 1;
         $proxAgno = $agno + 1;
     }
     $fDesde = $agno . "-" . str_pad($mes, 2, "0", STR_PAD_LEFT) . "-01";
     $fHasta = $proxAgno . "-" . str_pad($proxMes, 2, "0", STR_PAD_LEFT) . "-01";
     $movimientos = Movimiento::model()->findAll(array('condition' => 'fecha >= :fDesde and fecha < :fHasta and cuenta_corriente_id = :cta and validado = 1', 'params' => array(':fDesde' => $fDesde, ':fHasta' => $fHasta, ':cta' => $this->id)));
     return $movimientos;
 }
 public function createE()
 {
     $todoEquipos = Equipo::all();
     $movimientos = Movimiento::all();
     return View::make('movimiento.egresos.agregar')->with('todoEquipos', $todoEquipos);
 }
示例#10
0
 function kardexValorizadoxProducto()
 {
     $idLast = (int) $_REQUEST['idproducto'];
     $mesInicial = !empty($_REQUEST['mesInicial']) ? $_REQUEST['mesInicial'] : 1;
     $mesFinal = !empty($_REQUEST['mesFinal']) ? $_REQUEST['mesFinal'] : 12;
     $ano = !empty($_REQUEST['ano']) ? $_REQUEST['ano'] : date('Y');
     $sunat = $_REQUEST['sunat'];
     $_REQUEST['fecha1oo'] = $fecha1;
     for ($x = 1; $x < $idLast; $x++) {
         $producto = new Producto();
         $movimiento = new Movimiento();
         $almacen = new Almacen();
         //		if ($_REQUEST['id']) {
         $dataBusqueda = $producto->buscarxID($x);
         $idalmacen = (int) $dataBusqueda[0]['idalmacen'];
         $dataAlmacen = $almacen->buscaAlmacen($idalmacen);
         $dataKardex = $movimiento->kardexValorizadoxProducto($x, $ano, $mesInicial, $mesFinal, $sunat);
         $total = count($dataKardex);
         if ($total > 0) {
             //                 echo"<h2>".$dataBusqueda[0]['nompro']."</h2></br>";
             //echo"<h2>".$dataAlmacen[0]['nomalm']."</h2></br>";
             echo "<table style='margin-bottom:0px'>";
             echo "<caption>";
             echo "<h2>Formato 13.1 : Registro de Inventario Permanente Valorizado</h2>";
             echo "</caption>";
             echo "<tr>";
             echo "<td style='width:30%;text-align: left;'>PERIODO : </td><td style='width:70%;text-align: left;'><label id='labelPeriodo'>" . $ano . "</td>";
             echo "</tr>";
             echo "<tr>";
             echo "<td style='width:30%;text-align: left;'>RUC : </td><td style='width:70%;text-align: left;'><label id='labelRuc'>" . $dataAlmacen[0]['rucalm'] . "</label></td>";
             echo "</tr>";
             echo "<tr>";
             echo "<td style='width:30%;text-align: left;'>RAZON SOCIAL : </td><td style='width:70%;text-align: left;'><label id='labelRazonSocial'>" . $dataAlmacen[0]['razsocalm'] . "</label></td>";
             echo "</tr>\n\t\t<tr>\n\t\t\t<td style='width:30%;text-align: left;'>ESTABLECIMIENTO : </td><td style='width:70%;text-align: left;'><label id='labelalmacen'>ALMACEN GENERAL</label></td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td style='width:30%;text-align: left;'>CODIGO DE LA EXISTENCIA : </td><td style='width:70%;text-align: left;'><label id='labelCodigo'>" . $dataBusqueda[0]['codigopa'] . "</label></td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td style='width:30%;text-align: left;'>TIPO : </td><td style='width:70%;text-align: left;'><label id='labelTipo'>MERCADERIAS</label></td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td style='width:30%;text-align: left;'>DESCRIPCION : </td><td style='width:70%;text-align: left;'><label id='labelProducto'>" . $dataBusqueda[0]['nompro'] . "</label></td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td style='width:30%;text-align: left;'>UNIDAD DE MEDIDA : </td><td style='width:70%;text-align: left;'><label id='labelUnidadMedida'>UNIDAD</label></td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td style='width:30%;text-align: left;'>METODO DE VALUACION : </td><td style='width:70%;text-align: left;'><label id='labelMetodo'PROMEDIO MOVIL</label></td>\n\t\t</tr>";
             echo "</table>";
             echo "<table id='tblKardexValorizado'>";
             echo "<thead>";
             echo "<tr>";
             echo "<th rowspan='2' class='text-10'>Nro</th>";
             echo "<th rowspan='2' class='text-30'>Fecha</th>";
             echo "<th rowspan='2' class='text-30'>Tipo Doc</th>";
             echo "<th rowspan='2' class='text-30'>Serie</th>";
             echo "<th rowspan='2' class='text-30'>Núm</th>";
             echo "<th rowspan='2' class='text-30'>Tipo<br>Mov.</th>";
             echo "<th colspan=3>ENTRADAS </th>";
             echo "<th colspan=3>SALIDAS</th>";
             echo "<th colspan=3>SALDO FINAL</th>";
             echo "</tr>";
             echo "<tr>";
             echo "<td >Cantidad</td>";
             echo "<td>Costo<br>Unit. (S/.)</td>";
             echo "<td class='text-100'>Costo Total (S/.)</td>";
             echo "<td>Cantidad</td>";
             echo "<td>Costo<br>Unit. (S/.)</td>";
             echo "<td class='text-100'>Costo Total (S/.)</td>";
             echo "<th>Cantidad</th>";
             echo "<th>Costo<br>Uni. (S/.)</th>";
             echo "<th class='text-100'>Costo Total (S/.)</th>\t\t\t\t\t\t\t\t\n\t\t\t</tr>\t\n\t\t</thead>";
             $tecant = 0;
             $tecosto = 0;
             $tscant = 0;
             $tscosto = 0;
             $cont = 0;
             if ($dataKardex[0]['codigotipooperacion'] != 16) {
                 echo "<tr>";
                 echo "<td></td>";
                 echo "<td colspan='4'>Saldo Inicial</td>";
                 echo "<td>16</td>";
                 echo "<td></td>";
                 echo "<td></td>";
                 echo "<td></td>";
                 echo "<td></td>";
                 echo "<td></td>";
                 echo "<td></td>";
                 if ($dataKardex[0]['tipomovimiento'] == 1) {
                     $cantidad = round($dataKardex[0]['SaldoCantidad'] - round($dataKardex[0]['cantidad']));
                     if ($cantidad < 0) {
                         $cantidad = 0;
                     }
                 } else {
                     $cantidad = round($dataKardex[0]['SaldoCantidad'] + round($dataKardex[0]['cantidad']));
                 }
                 echo "<td>" . $cantidad . "</td>";
                 echo "<td>" . $dataKardex[0]['SaldoPrecio'] . "</td>";
                 echo "<td>" . round($dataKardex[0]['SaldoPrecio'] * $cantidad, 2) . "</td>";
                 echo "</tr>";
             }
             for ($i = 0; $i < $total; $i++) {
                 echo "<tr>";
                 if ($dataKardex[$i]['codigotipooperacion'] == 16) {
                     echo "<td></td>";
                     echo "<td colspan='4'>Saldo Inicial</td>";
                 } else {
                     $cont++;
                     echo "<td>" . $cont . "</td>";
                     echo "<td>" . $dataKardex[$i]['fechamovimiento'] . "</td>";
                     echo "<td>" . $dataKardex[$i]['codigotipodocumento'] . "</td>";
                     echo "<td>" . $dataKardex[$i]['serie'] . "</td>";
                     echo "<td>" . $dataKardex[$i]['ndocumento'] . "</td>";
                 }
                 $cantidad = $cantidad - $dataKardex[$i]['SalidaCantidad'];
                 echo "<td style='text-align:center'>" . $dataKardex[$i]['codigotipooperacion'] . "</td>";
                 echo "<td style='text-align:center'>" . $dataKardex[$i]['EntradaCantidad'] . "</td>";
                 echo "<td style='text-align:right'>" . (empty($dataKardex[$i]['EntradaPrecio']) ? '' : number_format($dataKardex[$i]['EntradaPrecio'], 2)) . "</td>";
                 echo "<td style='text-align:right'>" . (empty($dataKardex[$i]['EntradaCosto']) ? '' : number_format($dataKardex[$i]['EntradaCosto'], 2)) . "</td>";
                 echo "<td style='text-align:center'>" . $dataKardex[$i]['SalidaCantidad'] . "</td>";
                 echo "<td style='text-align:right'>" . (empty($dataKardex[$i]['SalidaPrecio']) ? '' : number_format($dataKardex[$i]['SalidaPrecio'], 2)) . "</td>";
                 echo "<td style='text-align:right'>" . (empty($dataKardex[$i]['SalidaCosto']) ? '' : number_format($dataKardex[$i]['SalidaCosto'], 2)) . "</td>";
                 echo "<td style='text-align:center'>" . $cantidad . "</td>";
                 echo "<td style='text-align:right'>" . (empty($dataKardex[$i]['SaldoPrecio']) ? '' : number_format($dataKardex[$i]['SaldoPrecio'], 2)) . "</td>";
                 echo "<td style='text-align:right'>" . (empty($dataKardex[$i]['SaldoCosto']) ? '' : number_format($dataKardex[$i]['SaldoCosto'], 2)) . "</td>";
                 echo "</tr>";
                 $tecant = $cantidad + $dataKardex[$i]['EntradaCantidad'];
                 $tecosto += $dataKardex[$i]['EntradaCosto'];
                 $tscant += $dataKardex[$i]['SalidaCantidad'];
                 $tscosto += $dataKardex[$i]['SalidaCosto'];
             }
             echo "<tr>";
             echo "<td colspan=6></td>";
             echo "<th style='text-align:center'>" . round($tecant) . "</td>";
             echo "<td></td>";
             echo "<th style='text-align:right'>" . number_format($tecosto, 2) . "</td>";
             echo "<th style='text-align:center'>" . round($tscant) . "</td>";
             echo "<td></td>";
             echo "<th style='text-align:right'>" . number_format($tscosto, 2) . "</td>";
             echo "<td colspan=3></td>";
             echo "</tr>";
             echo "</table>";
         }
         //		}
     }
     exit;
     $tecant = 0;
     $tecosto = 0;
     $tscant = 0;
     $tscosto = 0;
     $cont = 0;
     $cantidad = 0;
     if ($dataKardex[0]['codigotipooperacion'] != 16) {
         echo "<tr>";
         echo "<td></td>";
         echo "<td colspan='4'>Saldo Inicial</td>";
         echo "<td>16</td>";
         echo "<td></td>";
         echo "<td></td>";
         echo "<td></td>";
         echo "<td></td>";
         echo "<td></td>";
         echo "<td></td>";
         if ($dataKardex[0]['tipomovimiento'] == 1) {
             $cantidad = round($dataKardex[0]['SaldoCantidad'] - round($dataKardex[0]['cantidad']));
             if ($cantidad < 0) {
                 $cantidad = 0;
             }
         } else {
             //$cantidad=round($dataKardex[0]['SaldoCantidad']+round($dataKardex[0]['cantidad']));
             $cantidad = 461;
         }
         echo "<td>" . $cantidad . "</td>";
         echo "<td>" . $dataKardex[0]['SaldoPrecio'] . "</td>";
         echo "<td>" . round($dataKardex[0]['SaldoPrecio'] * $cantidad, 2) . "</td>";
         echo "</tr>";
     }
     for ($i = 0; $i < $total; $i++) {
         echo "<tr>";
         if ($dataKardex[$i]['codigotipooperacion'] == 16) {
             echo "<td></td>";
             echo "<td colspan='4'>Saldo Inicial</td>";
         } else {
             $cont++;
             echo "<td>" . $cont . "</td>";
             echo "<td>" . $dataKardex[$i]['fechamovimiento'] . "</td>";
             echo "<td>" . $dataKardex[$i]['codigotipodocumento'] . "</td>";
             echo "<td>" . $dataKardex[$i]['serie'] . "</td>";
             echo "<td>" . $dataKardex[$i]['ndocumento'] . "</td>";
         }
         $cantidad = $cantidad - $dataKardex[$i]['SalidaCantidad'];
         echo "<td style='text-align:center'>" . $dataKardex[$i]['codigotipooperacion'] . "</td>";
         echo "<td style='text-align:center'>" . $dataKardex[$i]['EntradaCantidad'] . "</td>";
         echo "<td style='text-align:right'>" . (empty($dataKardex[$i]['EntradaPrecio']) ? '' : number_format($dataKardex[$i]['EntradaPrecio'], 2)) . "</td>";
         echo "<td style='text-align:right'>" . (empty($dataKardex[$i]['EntradaCosto']) ? '' : number_format($dataKardex[$i]['EntradaCosto'], 2)) . "</td>";
         echo "<td style='text-align:center'>" . $dataKardex[$i]['SalidaCantidad'] . "</td>";
         echo "<td style='text-align:right'>" . (empty($dataKardex[$i]['SalidaPrecio']) ? '' : number_format($dataKardex[$i]['SalidaPrecio'], 2)) . "</td>";
         echo "<td style='text-align:right'>" . (empty($dataKardex[$i]['SalidaCosto']) ? '' : number_format($dataKardex[$i]['SalidaCosto'], 2)) . "</td>";
         echo "<td style='text-align:center'>" . $cantidad . "</td>";
         echo "<td style='text-align:right'>" . (empty($dataKardex[$i]['SaldoPrecio']) ? '' : number_format($dataKardex[$i]['SaldoPrecio'], 2)) . "</td>";
         echo "<td style='text-align:right'>" . (empty($dataKardex[$i]['SaldoCosto']) ? '' : number_format($dataKardex[$i]['SaldoCosto'], 2)) . "</td>";
         echo "</tr>";
         $tecant = $cantidad + $dataKardex[$i]['EntradaCantidad'];
         $tecosto += $dataKardex[$i]['EntradaCosto'];
         $tscant += $dataKardex[$i]['SalidaCantidad'];
         $tscosto += $dataKardex[$i]['SalidaCosto'];
     }
     echo "<tr>";
     echo "<td colspan=6></td>";
     echo "<th style='text-align:center'>" . round($tecant) . "</td>";
     echo "<td></td>";
     echo "<th style='text-align:right'>" . number_format($tecosto, 2) . "</td>";
     echo "<th style='text-align:center'>" . round($tscant) . "</td>";
     echo "<td></td>";
     echo "<th style='text-align:right'>" . number_format($tscosto, 2) . "</td>";
     echo "<td colspan=3></td>";
     echo "</tr>";
 }
示例#11
0
<?php

$prov = $_POST["prov"];
$dest = $_POST["dest"];
$articulo = $_POST["articulo"];
$cantidad = $_POST["cantidad"];
$dp = $_POST["dp"];
require '../Clases/clsPedido.php';
require '../Clases/clsMovimiento.php';
$objMovimiento = new Movimiento();
$objPed = new Pedido("", "", "");
$descripcion = "Trasferido para satisfacer la demanda requerida ";
if ($objMovimiento->AgregaMovimientoTrasferencia($articulo, $cantidad, $descripcion, $prov, $dest)) {
    $objPed->PedidoAtendido($dp);
} else {
    echo 'Error';
}
示例#12
0
<? require_once './view/html.php';

	$tabla = $_GET['doc'];

	// 7 - Compras
	// 8 - Ventas
	// 9 - movimientoes

	$movimiento = new Movimiento();
	$mov = $movimiento->find($tabla);

	$documento = new Documento();
	$documento->setDocumento($mov[0]['tabla']);
	$documento->setSub($mov[0]['subtabla']);
	$obj = ucwords($mov[0]['subtabla']);
	$remitente = new $obj();
	$producto = new Producto();

	if (($_GET['action']=='Guardar') or ($_GET['action']=='Actualizar')) {
		$id_rem = $_POST['id_rem'];
		$documento->setIdremitente($id_rem);
	}	

	if (($_GET['action']=='Guardar') or ($_GET['action']=='Actualizar')) {
		$_GET['action']='';
		header("Location: ./documentos.php");
	}

	if (($_GET['action']=='search')or(isset($_GET['id']))) {
		try {			
			$id = $_GET['id'];
示例#13
0
 public function actionAdminAbonos()
 {
     $model = new Contrato('search');
     $model->unsetAttributes();
     // clear any default values
     if (isset($_GET['Contrato'])) {
         $model->attributes = $_GET['Contrato'];
     }
     $meses = array();
     for ($i = 1; $i <= 12; $i++) {
         $meses[] = array('id' => str_pad($i, 2, "0", STR_PAD_LEFT), 'nombre' => Tools::fixMes($i));
     }
     $agnos = array();
     $agnoInicio = 2000;
     $agnoFin = (int) date('Y') + 10;
     for ($i = $agnoInicio; $i < $agnoFin; $i++) {
         $agnos[] = array('id' => $i, 'nombre' => $i);
     }
     $filtroModel = new EstadoCuentaForm();
     $filtroModel->agnoH = date('Y');
     $filtroModel->mesH = date('m');
     if ($filtroModel->mesH == '01') {
         $filtroModel->mesD = '12';
         $filtroModel->agnoD = (int) $filtroModel->agnoH - 1;
     } else {
         $mes = (int) $filtroModel->mesH;
         $filtroModel->mesD = str_pad($mes - 1, 2, "0", STR_PAD_LEFT);
         $filtroModel->agnoD = $filtroModel->agnoH;
     }
     if (isset($_POST['EstadoCuentaForm'])) {
         $filtroModel->attributes = $_POST['EstadoCuentaForm'];
         Yii::import('ext.phpexcel.XPHPExcel');
         $objPHPExcel = XPHPExcel::createPHPExcel();
         $sheet = $objPHPExcel->getActiveSheet();
         $contrato = Contrato::model()->findByPk($filtroModel->contratoId);
         if ($contrato == null) {
             die;
         }
         if (!$contrato->estaAsociadoAPropietario(Yii::app()->user->id)) {
             die;
         }
         $sheet->setCellValue('A1', 'Movimientos de Cliente');
         $sheet->mergeCells("A1:L1");
         $sheet->getStyle("A1")->getFont()->setSize(15);
         $sheet->setCellValue('A3', 'Nombre: ');
         $sheet->setCellValue('B3', $contrato->cliente->usuario->nombre . " " . $contrato->cliente->usuario->apellido);
         $sheet->setCellValue('F3', 'Fecha Consulta: ' . date('d/m/Y'));
         $sheet->setCellValue('A4', 'Propiedad: ');
         $sheet->setCellValue('B4', $contrato->departamento->propiedad->nombre);
         $sheet->setCellValue('C4', "Departamento: ");
         $sheet->setCellValue('D4', $contrato->departamento->numero);
         $sheet->getStyle("A3")->getFont()->setSize(13);
         $sheet->getStyle("B3")->getFont()->setSize(13);
         $sheet->getStyle("F3")->getFont()->setSize(13);
         $sheet->getStyle("A4")->getFont()->setSize(13);
         $sheet->getStyle("B4")->getFont()->setSize(13);
         $sheet->getStyle("C4")->getFont()->setSize(13);
         $sheet->getStyle("D4")->getFont()->setSize(13);
         $sheet->setCellValue('A5', "Rango de fechas consultado");
         $sheet->getStyle("A5")->getFont()->setSize(13);
         $sheet->setCellValue('A6', "Desde:");
         $sheet->getStyle("A6")->getFont()->setSize(13);
         $sheet->setCellValue('B6', Tools::fixMes($filtroModel->mesD) . " " . $filtroModel->agnoD);
         $sheet->getStyle("B6")->getFont()->setSize(13);
         $fechaDesde = $filtroModel->agnoD . "-" . $filtroModel->mesD . "-" . "01";
         if ($filtroModel->desdeInicio == '1') {
             $sheet->setCellValue('A6', "Desde inicio del Contrato:");
             $sheet->setCellValue('B6', Tools::backFecha($contrato->fecha_inicio));
             $fechaDesde = $contrato->fecha_inicio;
         }
         if ($filtroModel->desdeSaldo0 == '1') {
             $movimiento = Movimiento::model()->findByPk($contrato->cuentaCorriente->idMovUltimoSaldo0());
             if ($movimiento != null) {
                 $sheet->setCellValue('A6', "Desde último saldo 0:");
                 $sheet->setCellValue('B6', Tools::backFecha($movimiento->fecha));
                 $fechaDesde = $movimiento->fecha;
             } else {
                 $sheet->setCellValue('A6', "Desde último saldo 0:");
                 $sheet->setCellValue('B6', "No hay saldo 0 ");
                 $fechaDesde = $contrato->fecha_inicio;
             }
         }
         $fechaArr = explode("-", $fechaDesde);
         $filtroModel->mesD = $fechaArr[1];
         $filtroModel->agnoD = $fechaArr[0];
         $sheet->setCellValue('A7', "Hasta:");
         $sheet->getStyle("A7")->getFont()->setSize(13);
         $sheet->setCellValue('B7', Tools::fixMes($filtroModel->mesH) . " " . $filtroModel->agnoH);
         $sheet->getStyle("B7")->getFont()->setSize(13);
         $sheet->setCellValue('A9', "Saldo Anterior:");
         $sheet->getStyle("A9")->getFont()->setSize(13);
         $sheet->setCellValue('B9', $contrato->cuentaCorriente->saldoAFecha($fechaDesde));
         $sheet->getStyle("B9")->getFont()->setSize(13);
         if ($filtroModel->conDetalle == "1") {
             $sheet->setCellValue('A11', "Mes/Año");
             $sheet->setCellValue('B11', "Concepto");
             $sheet->setCellValue('C11', "Cargos");
             $sheet->mergeCells('C11:D11');
             $sheet->setCellValue('E1', "Abonos");
             $sheet->mergeCells('E11:F11');
             $sheet->setCellValue('C12', "Fecha");
             $sheet->setCellValue('D12', "Monto");
             $sheet->setCellValue('E12', "Fecha");
             $sheet->setCellValue('F12', "Monto");
             $sheet->getStyle("A11:F12")->getFont()->setBold(true);
             $j = 13;
         } else {
             $sheet->setCellValue('A11', "Mes/Año");
             $sheet->setCellValue('B11', "Cargos");
             $sheet->setCellValue('C11', "Abonos");
             $sheet->getStyle("A11:C11")->getFont()->setBold(true);
             $j = 12;
         }
         $meses = Tools::arregloMeses($filtroModel->mesD, $filtroModel->agnoD, $filtroModel->mesH, $filtroModel->agnoH);
         $abonos = 0;
         $cargos = 0;
         foreach ($meses as $mesArr) {
             $mes = $mesArr['mes'];
             $agno = $mesArr['agno'];
             $mesNombre = $mesArr['mesNombre'];
             if ($filtroModel->conDetalle == "1") {
                 $sheet->setCellValue('A' . $j, $mesNombre . " " . $agno);
                 $j++;
                 $movimientosMes = $contrato->cuentaCorriente->movimientosDeMes($mes, $agno);
                 foreach ($movimientosMes as $movimiento) {
                     $sheet->setCellValue('B' . $j, $movimiento->detalle);
                     if ($movimiento->tipo == Tools::MOVIMIENTO_TIPO_CARGO) {
                         $sheet->setCellValue('C' . $j, Tools::backFecha($movimiento->fecha));
                         $sheet->setCellValue('D' . $j, $movimiento->monto);
                         $cargos += $movimiento->monto;
                     } else {
                         $sheet->setCellValue('E' . $j, Tools::backFecha($movimiento->fecha));
                         $sheet->setCellValue('F' . $j, $movimiento->monto);
                         $abonos += $movimiento->monto;
                     }
                     $j++;
                 }
             } else {
                 $saldoMes = $contrato->cuentaCorriente->saldoMes($mes, $agno);
                 $sheet->setCellValue('A' . $j, $mesNombre . " " . $agno);
                 $sheet->setCellValue('B' . $j, $saldoMes['cargos']);
                 $sheet->setCellValue('C' . $j, $saldoMes['abonos']);
                 $j++;
             }
         }
         if ($filtroModel->conDetalle == "1") {
             $sheet->setCellValue('A' . $j, "SUB TOTAL");
             $sheet->setCellValue('D' . $j, $cargos);
             $sheet->setCellValue('F' . $j, $abonos);
             $j++;
         }
         $saldo = $contrato->cuentaCorriente->saldoAFecha(date('Y-m-d'));
         $sheet->setCellValue('A' . ($j + 1), "Saldo fecha consulta: ");
         $sheet->getStyle('A' . ($j + 1))->getFont()->setSize(13);
         $sheet->setCellValue('B' . ($j + 1), $saldo);
         $sheet->getStyle('B' . ($j + 1))->getFont()->setSize(13);
         $color = '00FF00';
         if ($saldo < 0) {
             $color = 'FF0000';
         }
         $sheet->getStyle("B" . ($j + 1))->applyFromArray(array('fill' => array('type' => PHPExcel_Style_Fill::FILL_SOLID, 'color' => array('rgb' => $color))));
         // Set active sheet index to the first sheet, so Excel opens this as the first sheet
         $objPHPExcel->setActiveSheetIndex(0);
         header('Content-Type: application/vnd.ms-excel');
         header('Content-Disposition: attachment;filename="Movimientos Cliente ' . $contrato->cliente->usuario->nombre . ' ' . $contrato->cliente->usuario->apellido . '.xls"');
         header('Cache-Control: max-age=0');
         // If you're serving to IE 9, then the following may be needed
         header('Cache-Control: max-age=1');
         // If you're serving to IE over SSL, then the following may be needed
         header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
         // Date in the past
         header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
         // always modified
         header('Cache-Control: cache, must-revalidate');
         // HTTP/1.1
         header('Pragma: public');
         // HTTP/1.0
         $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
         $objWriter->save('php://output');
         Yii::app()->end();
     }
     Yii::app()->user->returnUrl = array('//contrato/adminAbonos');
     $this->render('adminAbonos', array('model' => $model, 'filtroModel' => $filtroModel, 'meses' => $meses, 'agnos' => $agnos));
 }
示例#14
0
<?php

$almacen = $_POST["id"];
require_once '../Clases/clsMovimiento.php';
$objMovimiento = new Movimiento();
$objMovimiento->ListarEntradas($almacen);
示例#15
0
 /**
  * Filter the query by a related Movimiento object
  *
  * @param   Movimiento|PropelObjectCollection $movimiento  the related object to use as filter
  * @param     string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
  *
  * @return   ProveedorQuery The current query, for fluid interface
  * @throws   PropelException - if the provided filter is invalid.
  */
 public function filterByMovimiento($movimiento, $comparison = null)
 {
     if ($movimiento instanceof Movimiento) {
         return $this->addUsingAlias(ProveedorPeer::ID, $movimiento->getProveedorId(), $comparison);
     } elseif ($movimiento instanceof PropelObjectCollection) {
         return $this->useMovimientoQuery()->filterByPrimaryKeys($movimiento->getPrimaryKeys())->endUse();
     } else {
         throw new PropelException('filterByMovimiento() only accepts arguments of type Movimiento or PropelCollection');
     }
 }
示例#16
0
const ESTADO = "estado";
const DATOS = "Movimientos";
const MENSAJE = "mensaje";
const CODIGO_EXITO = 1;
const CODIGO_FALLO = 2;
require 'movimientos.php';
require 'hidrantes.php';
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
    header('Content-Type: application/json');
    $clientmovs = $_GET['NUM'];
    $servermovs = Movimiento::getRows()[0]['Filas'];
    $cambios = 0;
    $hidrantes = array();
    if ($servermovs > $clientmovs) {
        $cambios = $servermovs - $clientmovs;
        $movimientos = Movimiento::getLastMovs($cambios);
        foreach ($movimientos as $movimiento) {
            $hidrante = Hidrante::getHidrante($movimiento['id_hidrante']);
            array_push($hidrantes, $hidrante[0]);
        }
        print json_encode(array(ESTADO => CODIGO_EXITO, MENSAJE => 'Actualizacion Cliente', 'Movimientos' => $movimientos, 'Hidrantes' => $hidrantes));
    } elseif ($servermovs < $clientmovs) {
        $cambios = $clientmovs - $servermovs;
        print json_encode(array(ESTADO => CODIGO_EXITO, MENSAJE => 'Actualizacion Servidor', 'Movimientos' => $cambios));
    } elseif ($servermovs = $clientmovs) {
        print json_encode(array(ESTADO => CODIGO_EXITO, MENSAJE => 'Sincronizado'));
    } else {
        print json_encode(array(ESTADO => CODIGO_FALLO, MENSAJE => "Ha ocurrido un error"));
    }
}
示例#17
0
<?php

session_start();
require_once 'lib/html.php';
function __autoload($class_name)
{
    require_once './class/' . $class_name . '.php';
}
$id_ses = session_id();
$tabla = $_GET['doc'];
// 7 - Compras
// 8 - Ventas
// 9 - movimientoes
$movimiento = new Movimiento();
$stmt = $movimiento->find($tabla);
$mov = mysqli_fetch_assoc($stmt);
$movimiento = new Documento();
$movimiento->setDocumento($mov['tabla']);
$movimiento->setSub($mov['subtabla']);
$producto = new Producto();
if (isset($_POST['Agregar'])) {
    if ($_POST['serial'] != "") {
        $productos = $producto->findBarCode($_POST['serial']);
        $p = mysqli_fetch_assoc($productos);
        $movimiento->setIdProducto($p['id']);
        $movimiento->setCant($_POST['cant']);
        $movimiento->setSerial($_POST['serial']);
        if ($_GET['id'] == 0) {
            $movimiento->addDetail($id_ses);
        } else {
            $movimiento->addDetailReg($_GET['id']);
 function llenarPropiedadesMovimiento($encabezado, $detalle, $origen = 'interface', $listaprecio = '', $listapreciotercero = '', $mediopago = array())
 {
     $ruta = dirname(realpath(__FILE__)) . DIRECTORY_SEPARATOR;
     // instanciamos la clase movimiento y llenamos sus propiedades para que ella se encargue de importar los datos
     require_once '../clases/movimiento.class.php';
     $movimiento = new Movimiento();
     $retorno = array();
     // contamos los registros del encabezado
     $totalreg = isset($encabezado[0]["numeroMovimiento"]) ? count($encabezado) : 0;
     //print_r($encabezado);
     //echo '<br>';
     //                 print_r($encabezado);
     //print_r($detalle);
     //                 exit();
     //echo '<br>';
     $nuevoserrores = $this->validarMovimiento($encabezado, $detalle, $listaprecio, $listapreciotercero, $origen);
     // print_r($nuevoserrores);
     //exit();
     ////
     if (!isset($nuevoserrores[0]["error"]) or $nuevoserrores[0]["error"] == '') {
         //                    echo "<br>entra1<br>";
         //                    return;
         echo 'entra1';
         for ($i = 0; $i < $totalreg; $i++) {
             //                    echo "<br> entra for encabezado<br>";
             //echo " entra if isset ";
             // para cada registro, ejecutamos el constructor de la clase para que inicialice todas las variables y arrys
             $movimiento->Movimiento();
             //echo 'registros de detalle '.count($movimiento->idMovimientoDetalle)."<br><br>";
             $movimiento->idMovimiento = isset($encabezado[$i]["idMovimiento"]) ? $encabezado[$i]["idMovimiento"] : 0;
             $movimiento->Documento_idDocumento = isset($encabezado[$i]["Documento_idDocumento"]) ? $encabezado[$i]["Documento_idDocumento"] : 0;
             $movimiento->DocumentoConcepto_idDocumentoConcepto = isset($encabezado[$i]["DocumentoConcepto_idDocumentoConcepto"]) ? $encabezado[$i]["DocumentoConcepto_idDocumentoConcepto"] : 0;
             $movimiento->prefijoMovimiento = isset($encabezado[$i]["prefijoMovimiento"]) ? $encabezado[$i]["prefijoMovimiento"] : '';
             $movimiento->sufijoMovimiento = isset($encabezado[$i]["sufijoMovimiento"]) ? $encabezado[$i]["sufijoMovimiento"] : '';
             $movimiento->fechaElaboracionMovimiento = isset($encabezado[$i]["fechaElaboracionMovimiento"]) ? $encabezado[$i]["fechaElaboracionMovimiento"] : date("Y-m-d");
             $movimiento->horaElaboracionMovimiento = isset($encabezado[$i]["horaElaboracionMovimiento"]) ? $encabezado[$i]["horaElaboracionMovimiento"] : date("H:i:s");
             // obtenemos el período contable segun la fecha de elaboracion del documento
             $sql = "Select idPeriodo\n                            From Periodo\n                            Where fechaInicialPeriodo <= '" . $movimiento->fechaElaboracionMovimiento . "' and fechaFinalPeriodo >= '" . $movimiento->fechaElaboracionMovimiento . "'";
             $bd = Db::getInstance();
             $dato = $bd->ejecutar($sql);
             $movimiento->Periodo_idPeriodo = isset($dato[0]["idPeriodo"]) ? $dato[0]["idPeriodo"] : 0;
             $sql = "Select  FormaPago_idFormaPago\n                            From    Tercero\n                            Where   idTercero = " . $encabezado[$i]["Tercero_idTercero"];
             $bd = Db::getInstance();
             $dato = $bd->ejecutar($sql);
             $movimiento->FormaPago_idFormaPago = isset($dato[0]["FormaPago_idFormaPago"]) ? $dato[0]["FormaPago_idFormaPago"] : 0;
             $sql = "Select  afectaWMSDocumento, estadoWMSDocumento\n                            From    Documento\n                            Where   idDocumento = " . $movimiento->Documento_idDocumento;
             $bd = Db::getInstance();
             $dato = $bd->ejecutar($sql);
             $movimiento->estadoWMSMovimiento = $dato[0]["afectaWMSDocumento"] == 'SI' ? $dato[0]["estadoWMSDocumento"] : 'CERRADO';
             // con el id de la forma de pago, buscamos cuantos días de pago tiene
             $sql = "Select  diasFormaPago\n                            From    FormaPago\n                            Where   idFormaPago = " . $movimiento->FormaPago_idFormaPago;
             $bd = Db::getInstance();
             $dato = $bd->ejecutar($sql);
             $dias = isset($dato[0]["diasFormaPago"]) ? $dato[0]["diasFormaPago"] : 0;
             echo 'ahi va';
             // calculamos la fecha de vencimiento según la fecha de elaboracion y la forma de pago del documento
             $movimiento->fechaVencimientoMovimiento = $this->calcularvencimiento($movimiento->fechaElaboracionMovimiento, $dias);
             $movimiento->fechaMinimaMovimiento = isset($encabezado[$i]["fechaMinimaMovimiento"]) ? $encabezado[$i]["fechaMinimaMovimiento"] : '';
             $movimiento->fechaMaximaMovimiento = isset($encabezado[$i]["fechaMaximaMovimiento"]) ? $encabezado[$i]["fechaMaximaMovimiento"] : '';
             $movimiento->fechaSolicitudMovimiento = isset($encabezado[$i]["fechaSolicitudMovimiento"]) ? $encabezado[$i]["fechaSolicitudMovimiento"] : '';
             $movimiento->numeroMovimiento = isset($encabezado[$i]["numeroMovimiento"]) ? $encabezado[$i]["numeroMovimiento"] : '';
             $movimiento->Tercero_idTercero = isset($encabezado[$i]["Tercero_idTercero"]) ? $encabezado[$i]["Tercero_idTercero"] : 0;
             $movimiento->Tercero_idPrincipal = isset($encabezado[$i]["Tercero_idPrincipal"]) ? $encabezado[$i]["Tercero_idPrincipal"] : 0;
             $movimiento->Tercero_idVendedor = isset($encabezado[$i]["Tercero_idVendedor"]) ? $encabezado[$i]["Tercero_idVendedor"] : 0;
             $movimiento->CentroCosto_idCentroCosto = isset($encabezado[$i]["CentroCosto_idCentroCosto"]) ? $encabezado[$i]["CentroCosto_idCentroCosto"] : 0;
             $movimiento->Tercero_idEntrega = isset($encabezado[$i]["Tercero_idEntrega"]) ? $encabezado[$i]["Tercero_idEntrega"] : 0;
             $movimiento->tipoMovimiento = isset($encabezado[$i]["tipoMovimiento"]) ? $encabezado[$i]["tipoMovimiento"] : 'NORMAL';
             $movimiento->tipoReferenciaInternoMovimiento = isset($encabezado[$i]["tipoReferenciaInternoMovimiento"]) ? $encabezado[$i]["tipoReferenciaInternoMovimiento"] : 0;
             $movimiento->numeroReferenciaInternoMovimiento = isset($encabezado[$i]["numeroReferenciaInternoMovimiento"]) ? $encabezado[$i]["numeroReferenciaInternoMovimiento"] : '';
             $movimiento->tipoReferenciaExternoMovimiento = isset($encabezado[$i]["tipoReferenciaExternoMovimiento"]) ? $encabezado[$i]["tipoReferenciaExternoMovimiento"] : 0;
             $movimiento->numeroReferenciaExternoMovimiento = isset($encabezado[$i]["numeroReferenciaExternoMovimiento"]) ? $encabezado[$i]["numeroReferenciaExternoMovimiento"] : '';
             $movimiento->Importacion_idImportacion = isset($encabezado[$i]["Importacion_idImportacion"]) ? $encabezado[$i]["Importacion_idImportacion"] : 0;
             $movimiento->Embarque_idEmbarque = isset($encabezado[$i]["Embarque_idEmbarque"]) ? $encabezado[$i]["Embarque_idEmbarque"] : 0;
             $movimiento->Moneda_idMoneda = isset($encabezado[$i]["Moneda_idMoneda"]) ? $encabezado[$i]["Moneda_idMoneda"] : 0;
             $movimiento->tasaCambioMovimiento = !empty($encabezado[$i]["tasaCambioMovimiento"]) ? $encabezado[$i]["tasaCambioMovimiento"] : 0;
             $movimiento->factorMovimiento = !empty($encabezado[$i]["factorMovimiento"]) ? $encabezado[$i]["factorMovimiento"] : 0;
             $movimiento->Incoterm_idIncoterm = isset($encabezado[$i]["Incoterm_idIncoterm"]) ? $encabezado[$i]["Incoterm_idIncoterm"] : 0;
             $movimiento->observacionMovimiento = isset($encabezado[$i]["observacionMovimiento"]) ? $encabezado[$i]["observacionMovimiento"] : '';
             $movimiento->totalUnidadesMovimiento = 0;
             $movimiento->valorFleteMovimiento = !empty($encabezado[$i]["valorFleteMovimiento"]) ? $encabezado[$i]["valorFleteMovimiento"] : 0;
             $movimiento->valorSeguroMovimiento = !empty($encabezado[$i]["valorSeguroMovimiento"]) ? $encabezado[$i]["valorSeguroMovimiento"] : 0;
             $movimiento->valorAcarreoMovimiento = !empty($encabezado[$i]["valorAcarreoMovimiento"]) ? $encabezado[$i]["valorAcarreoMovimiento"] : 0;
             $movimiento->estadoMovimiento = 'ACTIVO';
             $movimiento->SegLogin_idUsuarioCrea = isset($encabezado[$i]["SegLogin_idUsuarioCrea"]) ? $encabezado[$i]["SegLogin_idUsuarioCrea"] : '';
             $movimiento->impresoMovimiento = isset($encabezado[$i]["impresoMovimiento"]) ? $encabezado[$i]["impresoMovimiento"] : '';
             $movimiento->SegLogin_idUsuarioAnula = isset($encabezado[$i]["SegLogin_idUsuarioAnula"]) ? $encabezado[$i]["SegLogin_idUsuarioAnula"] : '';
             $movimiento->fechaAnuladoMovimiento = isset($encabezado[$i]["fechaAnuladoMovimiento"]) ? $encabezado[$i]["fechaAnuladoMovimiento"] : '';
             $movimiento->LiquidacionNomina_idLiquidacionNomina = isset($encabezado[$i]["LiquidacionNomina_idLiquidacionNomina"]) ? $encabezado[$i]["LiquidacionNomina_idLiquidacionNomina"] : 0;
             $movimiento->Embarque_idTransito = isset($encabezado[$i]["Embarque_idTransito"]) ? $encabezado[$i]["Embarque_idTransito"] : 0;
             $movimiento->MercanciaExtranjera_idMercanciaExtranjera = isset($encabezado[$i]["MercanciaExtranjera_idMercanciaExtranjera"]) ? $encabezado[$i]["MercanciaExtranjera_idMercanciaExtranjera"] : 0;
             $movimiento->Nacionalizacion_idNacionalizacion = isset($encabezado[$i]["Nacionalizacion_idNacionalizacion"]) ? $encabezado[$i]["Nacionalizacion_idNacionalizacion"] : 0;
             $movimiento->tipoDescuentoMovimiento = isset($encabezado[$i]["tipoDescuentoMovimiento"]) ? $encabezado[$i]["tipoDescuentoMovimiento"] : 'Porcentaje';
             $movimiento->nivelDescuentoMovimiento = isset($encabezado[$i]["nivelDescuentoMovimiento"]) ? $encabezado[$i]["nivelDescuentoMovimiento"] : 'Detalle';
             $movimiento->CentroProduccion_idCentroProduccion = isset($encabezado[$i]["CentroProduccion_idCentroProduccion"]) ? $encabezado[$i]["CentroProduccion_idCentroProduccion"] : 0;
             $movimiento->OrdenProduccion_idOrdenProduccion = isset($encabezado[$i]["OrdenProduccion_idOrdenProduccion"]) ? $encabezado[$i]["OrdenProduccion_idOrdenProduccion"] : 0;
             $movimiento->ListaPrecio_idListaPrecio = isset($encabezado[$i]["ListaPrecio_idListaPrecio"]) ? $encabezado[$i]["ListaPrecio_idListaPrecio"] : (isset($nuevoserrores[0]["ListaPrecio_idListaPrecioDetalle"]) ? $nuevoserrores[0]["ListaPrecio_idListaPrecioDetalle"] : 0);
             $subtotal = 0;
             $descuento = 0;
             $base = 0;
             $impuesto = 0;
             $retencion = 0;
             $reteiva = 0;
             $totalUnidades = 0;
             // por cada registro del encabezado, recorremos el detalle para obtener solo los datos del mismo numero de movimiento del encabezado, con estos
             // llenamos arrays por cada campo
             $totaldet = isset($detalle[0]["numeroMovimiento"]) ? count($detalle) : 0;
             $ids = '';
             $precios = '';
             $descuentos = '';
             $cants = '';
             $regs = '';
             $ivas = '';
             $totalBaseImp = 0;
             $totalImp = 0;
             $totalImpoc = 0;
             $totalIva = 0;
             $totalImpDep = 0;
             // llevamos un contador de registros por cada producto del detalle
             $registroact = 0;
             for ($j = 0; $j < $totaldet; $j++) {
                 if (isset($encabezado[$i]["Documento_idDocumento"]) and isset($detalle[$j]["Documento_idDocumento"]) and $encabezado[$i]["Documento_idDocumento"] == $detalle[$j]["Documento_idDocumento"]) {
                     if (isset($encabezado[$i]["numeroMovimiento"]) and isset($detalle[$j]["numeroMovimiento"]) and $encabezado[$i]["numeroMovimiento"] == $detalle[$j]["numeroMovimiento"]) {
                         $sql = "Select   Impuesto_idImpuesto\n                                        From    viewProductoImpuesto\n                                        Where   idProducto IN (" . $detalle[$j]["Producto_idProducto"] . ")";
                         $bd = Db::getInstance();
                         $dato = $bd->ejecutar($sql);
                         $idImpuesto = isset($dato[0]['Impuesto_idImpuesto']) ? $dato[0]['Impuesto_idImpuesto'] : 0;
                         $sql = "Select   Retencion_idRetencion\n                                        From    viewProductoRetencion\n                                        Where   idProducto IN (" . $detalle[$j]["Producto_idProducto"] . ")";
                         $bd = Db::getInstance();
                         $dato = $bd->ejecutar($sql);
                         $idRetencion = isset($dato[0]['Retencion_idRetencion']) ? $dato[0]['Retencion_idRetencion'] : 0;
                         $movimiento->idMovimientoDetalle[$registroact] = 0;
                         $movimiento->Bodega_idBodegaOrigen[$registroact] = isset($detalle[$j]["Bodega_idBodegaOrigen"]) ? $detalle[$j]["Bodega_idBodegaOrigen"] : 0;
                         $movimiento->Bodega_idBodegaDestino[$registroact] = isset($detalle[$j]["Bodega_idBodegaDestino"]) ? $detalle[$j]["Bodega_idBodegaDestino"] : 0;
                         $movimiento->ProductoSerie_idProductoSerie[$registroact] = isset($detalle[$j]["ProductoSerie_idProductoSerie"]) ? $detalle[$j]["ProductoSerie_idProductoSerie"] : 0;
                         $movimiento->numeroProductoSerie[$registroact] = isset($detalle[$j]["numeroProductoSerie"]) ? $detalle[$j]["numeroProductoSerie"] : 0;
                         $movimiento->numeroLoteMovimientoDetalle[$registroact] = isset($detalle[$j]["numeroLoteMovimientoDetalle"]) ? $detalle[$j]["numeroLoteMovimientoDetalle"] : '';
                         $movimiento->Movimiento_idDocumentoRef[$registroact] = isset($detalle[$j]["Movimiento_idDocumentoRef"]) ? $detalle[$j]["Movimiento_idDocumentoRef"] : 0;
                         $movimiento->Poliza_idPoliza[$registroact] = isset($detalle[$j]["Poliza_idPoliza"]) ? $detalle[$j]["Poliza_idPoliza"] : 0;
                         $movimiento->Producto_idProducto[$registroact] = isset($detalle[$j]["Producto_idProducto"]) ? $detalle[$j]["Producto_idProducto"] : 0;
                         $movimiento->Producto_idSustitutoPrincipal[$registroact] = isset($detalle[$j]["Producto_idProducto"]) ? $detalle[$j]["Producto_idProducto"] : 0;
                         $movimiento->Tercero_idAlmacen[$registroact] = isset($detalle[$j]["Tercero_idAlmacen"]) ? $detalle[$j]["Tercero_idAlmacen"] : 0;
                         $movimiento->cantidadMovimientoDetalle[$registroact] = isset($detalle[$j]["cantidadMovimientoDetalle"]) ? $detalle[$j]["cantidadMovimientoDetalle"] : 0;
                         $movimiento->ListaPrecio_idListaPrecioDetalle[$registroact] = isset($encabezado[$i]["ListaPrecio_idListaPrecio"]) ? $encabezado[$i]["ListaPrecio_idListaPrecio"] : (isset($nuevoserrores[$j]["ListaPrecio_idListaPrecioDetalle"]) ? $nuevoserrores[$j]["ListaPrecio_idListaPrecioDetalle"] : 0);
                         $movimiento->precioListaMovimientoDetalle[$registroact] = isset($nuevoserrores[$j]["precioListaMovimientoDetalle"]) ? $nuevoserrores[$j]["precioListaMovimientoDetalle"] : (isset($detalle[$j]["precioListaMovimientoDetalle"]) ? $detalle[$j]["precioListaMovimientoDetalle"] : 0);
                         $movimiento->valorBrutoMovimientoDetalle[$registroact] = isset($nuevoserrores[$j]["valorBrutoMovimientoDetalle"]) ? $nuevoserrores[$j]["valorBrutoMovimientoDetalle"] : (isset($detalle[$j]["valorBrutoMovimientoDetalle"]) ? $detalle[$j]["valorBrutoMovimientoDetalle"] : 0);
                         $movimiento->BodegaUbicacion_idBodegaUbicacionOrigen = isset($detalle[$j]["BodegaUbicacion_idBodegaUbicacionOrigen"]) ? $detalle[$j]["BodegaUbicacion_idBodegaUbicacionOrigen"] : 0;
                         $movimiento->BodegaUbicacion_idBodegaUbicacionDestino[$registroact] = isset($detalle[$j]["BodegaUbicacion_idBodegaUbicacionDestino"]) ? $detalle[$j]["BodegaUbicacion_idBodegaUbicacionDestino"] : 0;
                         $movimiento->Embalaje_idEmbalaje[$registroact] = isset($detalle[$j]["Embalaje_idEmbalaje"]) ? $detalle[$j]["Embalaje_idEmbalaje"] : 0;
                         $movimiento->CentroCosto_idCentroCostoDetalle[$registroact] = isset($detalle[$j]["CentroCosto_idCentroCostoDetalle"]) ? $detalle[$j]["CentroCosto_idCentroCostoDetalle"] : 0;
                         // descuento comercial
                         $movimiento->porcentajeDescuentoMovimientoDetalle[$registroact] = isset($detalle[$j]["porcentajeDescuentoMovimientoDetalle"]) ? $detalle[$j]["porcentajeDescuentoMovimientoDetalle"] : 0;
                         $movimiento->valorDescuentoMovimientoDetalle[$registroact] = (isset($nuevoserrores[$j]["valorBrutoMovimientoDetalle"]) ? $nuevoserrores[$j]["valorBrutoMovimientoDetalle"] : (isset($detalle[$j]["valorBrutoMovimientoDetalle"]) ? $detalle[$j]["valorBrutoMovimientoDetalle"] : 0)) * (isset($detalle[$j]["porcentajeDescuentoMovimientoDetalle"]) ? $detalle[$j]["porcentajeDescuentoMovimientoDetalle"] : 0) / 100;
                         $movimiento->valorBaseMovimientoDetalle[$registroact] = (isset($nuevoserrores[$j]["valorBrutoMovimientoDetalle"]) ? $nuevoserrores[$j]["valorBrutoMovimientoDetalle"] : (isset($detalle[$j]["valorBrutoMovimientoDetalle"]) ? $detalle[$j]["valorBrutoMovimientoDetalle"] : 0)) - (isset($detalle[$j]["valorDescuentoMovimientoDetalle"]) ? $detalle[$j]["valorDescuentoMovimientoDetalle"] : 0);
                         // campos de descuento financiero para las NIIF
                         $movimiento->porcentajeDescuentoFinancieroMovimientoDetalle[$registroact] = isset($detalle[$j]["porcentajeDescuentoFinancieroMovimientoDetalle"]) ? $detalle[$j]["porcentajeDescuentoFinancieroMovimientoDetalle"] : 0;
                         $movimiento->valorDescuentoFinancieroMovimientoDetalle[$registroact] = isset($detalle[$j]["valorDescuentoFinancieroMovimientoDetalle"]) ? $detalle[$j]["valorDescuentoFinancieroMovimientoDetalle"] : 0;
                         $movimiento->valorBaseNIIFMovimientoDetalle[$registroact] = $movimiento->valorBrutoMovimientoDetalle[$registroact] - $movimiento->valorDescuentoMovimientoDetalle[$registroact] - $movimiento->valorDescuentoFinancieroMovimientoDetalle[$registroact];
                         // llenamos los id de iva y retencion antes consultados
                         $movimiento->Impuesto_idIva[$registroact] = isset($detalle[$j]["Impuesto_idIva"]) ? $detalle[$j]["Impuesto_idIva"] : 0;
                         $movimiento->Impuesto_idReteFuente[$registroact] = isset($detalle[$j]["Impuesto_idReteFuente"]) ? $detalle[$j]["Impuesto_idReteFuente"] : 0;
                         $movimiento->Impuesto_idReteCree[$registroact] = 0;
                         $movimiento->volumenTotalMovimientoDetalle[$registroact] = isset($detalle[$j]["volumenTotalMovimientoDetalle"]) ? $detalle[$j]["volumenTotalMovimientoDetalle"] : 0;
                         $movimiento->pesoTotalMovimientoDetalle[$registroact] = isset($detalle[$j]["pesoTotalMovimientoDetalle"]) ? $detalle[$j]["pesoTotalMovimientoDetalle"] : 0;
                         $movimiento->numeroCajasMovimientoDetalle[$registroact] = isset($detalle[$j]["numeroCajasMovimientoDetalle"]) ? $detalle[$j]["numeroCajasMovimientoDetalle"] : 0;
                         $movimiento->precioVentaPublicoMovimientoDetalle[$registroact] = isset($detalle[$j]["precioVentaPublicoMovimientoDetalle"]) ? $detalle[$j]["precioVentaPublicoMovimientoDetalle"] : 0;
                         $movimiento->margenUtilidadMovimientoDetalle[$registroact] = isset($detalle[$j]["margenUtilidadMovimientoDetalle"]) ? $detalle[$j]["margenUtilidadMovimientoDetalle"] : 0;
                         // datos de marcacion de productos
                         $movimiento->EtiquetaProducto_idEtiquetaProducto[$registroact] = isset($detalle[$j]["EtiquetaProducto_idEtiquetaProducto"]) ? $detalle[$j]["EtiquetaProducto_idEtiquetaProducto"] : 0;
                         $movimiento->etiquetaSeccionMovimientoDetalle[$registroact] = isset($detalle[$j]["etiquetaSeccionMovimientoDetalle"]) ? $detalle[$j]["etiquetaSeccionMovimientoDetalle"] : '';
                         $movimiento->etiquetaClasificacionMovimientoDetalle[$registroact] = isset($detalle[$j]["etiquetaClasificacionMovimientoDetalle"]) ? $detalle[$j]["etiquetaClasificacionMovimientoDetalle"] : '';
                         $movimiento->etiquetaFechaMovimientoDetalle[$registroact] = isset($detalle[$j]["etiquetaFechaMovimientoDetalle"]) ? $detalle[$j]["etiquetaFechaMovimientoDetalle"] : '';
                         $movimiento->etiquetaPrecioVentaNormalMovimientoDetalle[$registroact] = isset($detalle[$j]["etiquetaPrecioVentaNormalMovimientoDetalle"]) ? $detalle[$j]["etiquetaPrecioVentaNormalMovimientoDetalle"] : '';
                         $movimiento->etiquetaPrecioVentaOfertaMovimientoDetalle[$registroact] = isset($detalle[$j]["etiquetaPrecioVentaOfertaMovimientoDetalle"]) ? $detalle[$j]["etiquetaPrecioVentaOfertaMovimientoDetalle"] : '';
                         $movimiento->etiquetaLugarExhibicionMovimientoDetalle[$registroact] = isset($detalle[$j]["etiquetaLugarExhibicionMovimientoDetalle"]) ? $detalle[$j]["etiquetaLugarExhibicionMovimientoDetalle"] : '';
                         $movimiento->etiquetaDescripcion1MovimientoDetalle[$registroact] = isset($detalle[$j]["etiquetaDescripcion1MovimientoDetalle"]) ? $detalle[$j]["etiquetaDescripcion1MovimientoDetalle"] : '';
                         $movimiento->etiquetaDescripcion2MovimientoDetalle[$registroact] = isset($detalle[$j]["etiquetaDescripcion2MovimientoDetalle"]) ? $detalle[$j]["etiquetaDescripcion2MovimientoDetalle"] : '';
                         $movimiento->etiquetaDescripcion3MovimientoDetalle[$registroact] = isset($detalle[$j]["etiquetaDescripcion3MovimientoDetalle"]) ? $detalle[$j]["etiquetaDescripcion3MovimientoDetalle"] : '';
                         $movimiento->etiquetaReferenciaClienteMovimientoDetalle[$registroact] = isset($detalle[$j]["etiquetaReferenciaClienteMovimientoDetalle"]) ? $detalle[$j]["etiquetaReferenciaClienteMovimientoDetalle"] : '';
                         $movimiento->Lote_idLote[$registroact] = 0;
                         // inicializamos los impuestos en cero
                         $movimiento->valorIvaMovimientoDetalle[$registroact] = 0;
                         $movimiento->valorImpoconsumoMovimientoDetalle[$registroact] = 0;
                         $movimiento->valorImpDeporteMovimientoDetalle[$registroact] = 0;
                         $movimiento->valorReteCreeMovimientoDetalle[$registroact] = 0;
                         // inicializamos las retenciones en cero
                         $movimiento->valorReteIcaMovimientoDetalle[$registroact] = 0;
                         $movimiento->valorReteFuenteMovimientoDetalle[$registroact] = 0;
                         $movimiento->valorReteIvaMovimientoDetalle[$registroact] = 0;
                         //$movimiento->valorReteOtrosMovimientoDetalle[$registroact] = 0;
                         $movimiento->valorNetoMovimientoDetalle[$registroact] = $movimiento->valorBaseMovimientoDetalle[$registroact];
                         $movimiento->valorTotalMovimientoDetalle[$registroact] = $movimiento->valorBaseMovimientoDetalle[$registroact] * $movimiento->cantidadMovimientoDetalle[$registroact];
                         $movimiento->observacionMovimientoDetalle[$registroact] = isset($detalle[$j]["observacionMovimientoDetalle"]) ? $detalle[$j]["observacionMovimientoDetalle"] : '';
                         // luego de tener llenas las matrices, consultamos los impuestos y retenciones
                         //
                         $impuestos = $movimiento->consultarimpuestos($encabezado[$i]["Tercero_idTercero"], $encabezado[$i]["Documento_idDocumento"], $encabezado[$i]["DocumentoConcepto_idDocumentoConcepto"], $movimiento->Producto_idProducto[$registroact], $movimiento->cantidadMovimientoDetalle[$registroact], $movimiento->precioListaMovimientoDetalle[$registroact], $registroact, $movimiento->porcentajeDescuentoMovimientoDetalle[$registroact], $movimiento->fechaElaboracionMovimiento);
                         //print_r($impuestos);
                         // sumamos los impuestos para enviar al calculo de las retenciones la base de impuestos
                         // para esto recorremos el array de impuestos y aplicamos una suma
                         $totalregimp = isset($impuestos[0]["Producto_idProducto"]) ? count($impuestos) : 0;
                         if (isset($impuestos[0]["Producto_idProducto"])) {
                             //echo " entra if isset 3 ";
                             $totalBaseImp += $impuestos[0]["valorBaseMovimientoImpuesto"] * $impuestos[0]["cantidadMovimientoDetalle"];
                             $totalImp += $impuestos[0]["valorUnitarioMovimientoImpuesto"] * $impuestos[0]["cantidadMovimientoDetalle"];
                             // cada impuesto que recorremos, lo vamos acumulando en el campo correspondiente (segun el tipoImpuesto) y en el producto correspondiente
                             // (segun el registro del array de impuestos)
                             switch ($impuestos[0]["tipoImpuesto"]) {
                                 case 'valorImpoconsumoMovimientoDetalle':
                                     $movimiento->valorImpoconsumoMovimientoDetalle[$registroact] += $impuestos[0]["valorUnitarioMovimientoImpuesto"];
                                     $totalImpoc += $impuestos[0]["valorUnitarioMovimientoImpuesto"] * $impuestos[0]["cantidadMovimientoDetalle"];
                                     break;
                                 case 'valorIvaMovimientoDetalle':
                                     $movimiento->valorIvaMovimientoDetalle[$registroact] += $impuestos[0]["valorUnitarioMovimientoImpuesto"];
                                     $movimiento->valorBrutoMovimientoDetalle[$registroact] = $impuestos[0]["valorBrutoMovimientoImpuesto"];
                                     $movimiento->valorBaseMovimientoDetalle[$registroact] = $impuestos[0]["valorBaseMovimientoImpuesto"];
                                     $movimiento->Impuesto_idIva[$registroact] += $impuestos[0]["Impuesto_idImpuesto"];
                                     $totalIva += $impuestos[0]["valorUnitarioMovimientoImpuesto"] * $impuestos[0]["cantidadMovimientoDetalle"];
                                     break;
                                 case 'valorImpDeporteMovimientoDetalle':
                                     $movimiento->valorImpDeporteMovimientoDetalle[$registroact] += $impuestos[0]["valorUnitarioMovimientoImpuesto"];
                                     $totalImpDep += $impuestos[0]["valorUnitarioMovimientoImpuesto"] * $impuestos[0]["cantidadMovimientoDetalle"];
                                     break;
                             }
                             $ids .= $movimiento->Producto_idProducto[$registroact] . ',';
                             $precios .= $movimiento->valorBrutoMovimientoDetalle[$registroact] . ',';
                             $descuentos .= $movimiento->porcentajeDescuentoMovimientoDetalle[$registroact] . ',';
                             $cants .= $movimiento->cantidadMovimientoDetalle[$registroact] . ',';
                             $regs .= $registroact . ',';
                             $ivas .= $movimiento->valorIvaMovimientoDetalle[$registroact] * $movimiento->cantidadMovimientoDetalle[$registroact] . ',';
                             $movimiento->valorBaseMovimientoDetalle[$registroact] = $movimiento->valorBrutoMovimientoDetalle[$registroact] - $movimiento->valorDescuentoMovimientoDetalle[$registroact];
                             $movimiento->valorNetoMovimientoDetalle[$registroact] = $movimiento->valorBaseMovimientoDetalle[$registroact] + $movimiento->valorIvaMovimientoDetalle[$registroact] + $movimiento->valorImpoconsumoMovimientoDetalle[$registroact] + $movimiento->valorImpDeporteMovimientoDetalle[$registroact] - $movimiento->valorReteFuenteMovimientoDetalle[$registroact] - $movimiento->valorReteIvaMovimientoDetalle[$registroact] - $movimiento->valorReteCreeMovimientoDetalle[$registroact] - $movimiento->valorReteIcaMovimientoDetalle[$registroact];
                             $movimiento->valorTotalMovimientoDetalle[$registroact] = $movimiento->valorNetoMovimientoDetalle[$registroact] * $movimiento->cantidadMovimientoDetalle[$registroact];
                             $movimiento->margenUtilidadMovimientoDetalle[$registroact] = $movimiento->precioVentaPublicoMovimientoDetalle[$registroact] / ($movimiento->valorNetoMovimientoDetalle[$registroact] == 0 ? 1 : $movimiento->valorNetoMovimientoDetalle[$registroact] * 100);
                         }
                         $subtotal += (isset($nuevoserrores[$j]["valorBrutoMovimientoDetalle"]) ? $nuevoserrores[$j]["valorBrutoMovimientoDetalle"] : (isset($movimiento->valorBrutoMovimientoDetalle[$registroact]) ? $movimiento->valorBrutoMovimientoDetalle[$registroact] : 0)) * $detalle[$j]["cantidadMovimientoDetalle"];
                         $descuento += $movimiento->valorDescuentoMovimientoDetalle[$registroact] * $detalle[$j]["cantidadMovimientoDetalle"];
                         $totalUnidades += $detalle[$j]["cantidadMovimientoDetalle"];
                         $registroact++;
                     }
                 }
             }
             $base = $subtotal - $descuento;
             // luego de calculados los impuestos, calculamos las retenciones ya que estas dependen de la base de impuestos de documento
             $retenciones = $movimiento->consultarretenciones($encabezado[$i]["Tercero_idTercero"], $encabezado[$i]["Documento_idDocumento"], $encabezado[$i]["DocumentoConcepto_idDocumentoConcepto"], substr($ids, 0, strlen($ids) - 1), substr($cants, 0, strlen($cants) - 1), substr($precios, 0, strlen($precios) - 1), substr($ivas, 0, strlen($ivas) - 1), substr($regs, 0, strlen($regs) - 1), substr($descuentos, 0, strlen($descuentos) - 1), $totalBaseImp, $totalImp, $movimiento->tasaCambioMovimiento == 0 ? 1 : $movimiento->tasaCambioMovimiento, $movimiento->fechaElaboracionMovimiento);
             // sumamos las retenciones en los campos correspondientes
             $totalregret = isset($retenciones[0]["Producto_idProducto"]) ? count($retenciones) : 0;
             $totalReteFte = 0;
             $totalReteIva = 0;
             $totalReteIca = 0;
             $totalReteOtr = 0;
             $totalReteCree = 0;
             for ($ret = 0; $ret < $totalregret; $ret++) {
                 //                            echo " entra for 3 ";
                 // cada retencion que recorremos, la vamos acumulando en el campo correspondiente (segun el tipoRetencion) y en el producto correspondiente
                 // (segun el registro del array de retenciones)
                 switch ($retenciones[$ret]["tipoRetencion"]) {
                     case 'valorReteFuenteMovimientoDetalle':
                         $movimiento->valorReteFuenteMovimientoDetalle[(int) $retenciones[$ret]["registro"]] += $retenciones[$ret]["valorUnitarioMovimientoRetencion"];
                         $totalReteFte += $retenciones[$ret]["valorUnitarioMovimientoRetencion"] * $retenciones[$ret]["cantidadMovimientoDetalle"];
                         break;
                     case 'valorReteIcaMovimientoDetalle':
                         $movimiento->valorReteIcaMovimientoDetalle[(int) $retenciones[$ret]["registro"]] += $retenciones[$ret]["valorUnitarioMovimientoRetencion"];
                         $totalReteIca += $retenciones[$ret]["valorUnitarioMovimientoRetencion"] * $retenciones[$ret]["cantidadMovimientoDetalle"];
                         break;
                     case 'valorReteIvaMovimientoDetalle':
                         $movimiento->valorReteIvaMovimientoDetalle[(int) $retenciones[$ret]["registro"]] += $retenciones[$ret]["valorUnitarioMovimientoRetencion"];
                         $totalReteIva += $retenciones[$ret]["valorUnitarioMovimientoRetencion"] * $retenciones[$ret]["cantidadMovimientoDetalle"];
                         $afecReteIva = $retenciones[$ret]["ReteIvaAfectable"];
                         break;
                     case 'valorReteCreeMovimientoDetalle':
                         $movimiento->valorReteCreeMovimientoDetalle[(int) $retenciones[$ret]["registro"]] += $retenciones[$ret]["valorUnitarioMovimientoRetencion"];
                         $totalReteCree += $retenciones[$ret]["valorUnitarioMovimientoRetencion"] * $retenciones[$ret]["cantidadMovimientoDetalle"];
                         break;
                 }
                 //echo $retenciones[$ret]["tipoRetencion"].' = '.  $retenciones[$ret]["valorUnitarioMovimientoRetencion"]."<br>";
             }
             $movimiento->totalUnidadesMovimiento = $totalUnidades;
             $movimiento->subtotalMovimiento = $subtotal;
             $movimiento->porcentajeDescuentoMovimiento = isset($encabezado[$i]["porcentajeDescuentoMovimiento"]) ? $encabezado[$i]["porcentajeDescuentoMovimiento"] : 0;
             $movimiento->valorDescuentoMovimiento = $descuento;
             $movimiento->valorBaseMovimiento = $base;
             $movimiento->valorIvaMovimiento = $totalImp;
             // Pendiente llenar estos datos automaticamente en la importacion (son para las NIIF)
             $movimiento->porcentajeDescuentoFinancieroMovimiento = 0;
             $movimiento->valorDescuentoFinancieroMovimiento = 0;
             //$movimiento->valorBaseNIIFMovimiento = 0;
             $movimiento->valorIvaMovimiento = $totalImp;
             $movimiento->valorRetencionMovimiento = $totalReteFte;
             $movimiento->valorReteIvaMovimiento = $totalReteIva;
             $movimiento->valorReteIcaMovimiento = $totalReteIca;
             $movimiento->valorTotalMovimiento = number_format($base + $totalImp - $totalReteFte - ($afecReteIva == 'NO' ? 0 : $totalReteIva) - $totalReteIca + $movimiento->valorFleteMovimiento + $movimiento->valorSeguroMovimiento + $movimiento->valorAcarreoMovimiento, $datosDoc[0]['redondeoTotalDocumento'], '.', '');
             $movimiento->valorRecibidoMovimiento = 0;
             // cada que llenamos un documento, lo cargamos a la base de datos
             // pero antes de adicionarlo, consultamos que exista del mismo tipo de documento y con el mismo numero para obtener el id
             // la variable Origen, es para identificar si viene de Excel, EDI, o es de una liquidacion de importacion
             switch ($origen) {
                 case 'interface':
                     $movimiento->ConsultarMovimiento("Documento_idDocumento = " . $movimiento->Documento_idDocumento . " and numeroMovimiento = '" . $movimiento->numeroMovimiento . "'");
                     break;
                 case 'importacion':
                     $movimiento->ConsultarMovimiento("Documento_idDocumento = " . $movimiento->Documento_idDocumento . " and Importacion_idImportacion  = " . $movimiento->Importacion_idImportacion . " and numeroMovimiento = '" . $movimiento->numeroMovimiento . "'");
                     break;
                 case 'produccion':
                     $movimiento->ConsultarMovimiento("Documento_idDocumento = " . $movimiento->Documento_idDocumento . " and numeroReferenciaInternoMovimiento = '" . $movimiento->numeroReferenciaInternoMovimiento . "'");
                     break;
                 case 'conectividad':
                     //						$movimiento->ConsultarMovimiento("Documento_idDocumento = " . $movimiento->Documento_idDocumento . " and numeroReferenciaInternoMovimiento = '" . $movimiento->numeroReferenciaInternoMovimiento . "' and DocumentoConcepto_idDocumentoConcepto = ".$movimiento->DocumentoConcepto_idDocumentoConcepto);
                     $movimiento->ConsultarMovimiento("Documento_idDocumento = " . $movimiento->Documento_idDocumento . " and numeroReferenciaExternoMovimiento = '" . $movimiento->numeroReferenciaExternoMovimiento . "'");
                     break;
             }
             if ($movimiento->idMovimiento == 0) {
                 //                           echo 'entra1';
                 $movimiento->AdicionarMovimiento();
             } else {
                 //                            echo 'entra2';
                 $movimiento->ModificarMovimiento();
             }
         }
     }
     $returnuevoserrores = isset($nuevoserrores[0]["error"]) ? $nuevoserrores : array();
     $retorno = array_merge((array) $retorno, (array) $returnuevoserrores);
     return $retorno;
 }
示例#19
0
<?php

session_start();
require_once 'lib/html.php';
function __autoload($class_name)
{
    require_once 'class/' . $class_name . '.php';
}
$tabla = $_GET['doc'];
// 7 - Compras
// 8 - Ventas
// 9 - Remisiones
$movimiento = new Movimiento();
$stmt = $movimiento->find($tabla);
$mov = mysqli_fetch_assoc($stmt);
$documento = new Documento();
$documento->setDocumento($mov['tabla']);
$documento->setSub($mov['subtabla']);
$documento->setOperacion($mov['ope']);
$producto = new Producto();
$cliente = new Cliente();
$id_ses = session_id();
if ($_GET['action'] == 'Guardar' or $_GET['action'] == 'Actualizar') {
    $id_rem = $_GET['id_rem'];
    $no_doc = $_GET['no_doc'];
    $id_ses = $id_ses;
    $documento->setIdCliente($id_rem);
    $documento->setNoDoc($no_doc);
    $documento->setSesion($id_ses);
}
if ($_GET['action'] == 'Guardar') {
示例#20
0
 function kardexTotalxProducto()
 {
     $mesInicial = !empty($_REQUEST['mesInicial']) ? $_REQUEST['mesInicial'] : 1;
     $mesFinal = !empty($_REQUEST['mesFinal']) ? $_REQUEST['mesFinal'] : 12;
     $ano = !empty($_REQUEST['periodo']) ? $_REQUEST['periodo'] : date('Y');
     //$sunat=$_REQUEST['sunat'];
     $movimiento = new Movimiento();
     $dataKardex = $movimiento->kardexTotalxProducto($ano, $mesInicial, $mesFinal);
     $total = count($dataKardex);
     $idproducto = 0;
     $cont = -1;
     $totIngreso = 0;
     $totSalida = 0;
     $datos = array();
     for ($i = 0; $i < $total; $i++) {
         if ($idproducto != $dataKardex[$i]['idproducto']) {
             $idproducto = $dataKardex[$i]['idproducto'];
             if ($dataKardex[$i]['codigotipooperacion'] != 16) {
                 $cont++;
                 $datos[$cont]['idproducto'] = $idproducto;
                 $datos[$cont]['nompro'] = $dataKardex[$i]['nompro'];
                 $datos[$cont]['codigopa'] = $dataKardex[$i]['codigopa'];
                 if ($dataKardex[$i]['tipomovimiento'] == 1) {
                     $cantidad = round($dataKardex[$i]['SaldoCantidad'] - round($dataKardex[$i]['cantidad']));
                     if ($cantidad < 0) {
                         $cantidad = 0;
                     }
                     $datos[$cont]['saldoInicial'] = $cantidad * $dataKardex[$i]['SaldoPrecio'];
                 } elseif ($dataKardex[$i]['tipomovimiento'] == 2) {
                     $cantidad = round($dataKardex[$i]['SaldoCantidad'] + round($dataKardex[$i]['cantidad']));
                     $datos[$cont]['saldoInicial'] = $cantidad * $dataKardex[$i]['SaldoPrecio'];
                 }
             } elseif ($dataKardex[$i]['codigotipooperacion'] == 16) {
                 $cont++;
                 $datos[$cont]['idproducto'] = $dataKardex[$i]['idproducto'];
                 $datos[$cont]['nompro'] = $dataKardex[$i]['nompro'];
                 $datos[$cont]['codigopa'] = $dataKardex[$i]['codigopa'];
                 $datos[$cont]['saldoInicial'] = $dataKardex[$i]['SaldoPrecio'] * $dataKardex[$i]['SaldoCantidad'];
             }
         }
         if ($idproducto == $dataKardex[$i]['idproducto']) {
             $totIngreso += $dataKardex[$i]['EntradaCosto'];
             $totSalida += $dataKardex[$i]['SalidaCosto'];
             if ($idproducto != $dataKardex[$i + 1]['idproducto']) {
                 $datos[$cont]['EntradaTotal'] = $totIngreso;
                 $datos[$cont]['SalidaTotal'] = $totSalida;
                 $datos[$cont]['SaldoFinal'] = $dataKardex[$i]['SaldoPrecio'] * $dataKardex[$i]['SaldoCantidad'];
                 $totIngreso = 0;
                 $totSalida = 0;
             }
         }
     }
     $cantidadData = count($datos);
     $totIngresoSum = 0;
     $totInicialSum = 0;
     $totFinalSum = 0;
     /**/
     $pdf = new PDF_Mc_Table("P", "mm", "A4");
     $titulos = array('Codigo', 'Descripcion', 'Saldo Inicial', 'Compras', 'Total Existencias', 'Existencia Final', 'Costo de Ventas');
     $pdf->SetFont('Helvetica', 'B', 6.5);
     $ancho = array(25, 70, 20, 20, 20, 20, 20);
     $orientacion = array('', '', 'R', 'R', 'R', 'R', 'R');
     $pdf->_titulo = "Reporte de Total de Kardex Valorizado en S/.";
     $pdf->_datoPie = "Periodo: " . $ano . " de " . $this->meses($mesInicial) . "  a  " . $this->meses($mesFinal);
     $pdf->_imagenCabezera = ROOT . 'imagenes' . DS . 'POWER-ACOUSTIK.jpg';
     $pdf->SetWidths($ancho);
     $pdf->_titulos = $titulos;
     $pdf->AddPage();
     $relleno = true;
     $pdf->SetFillColor(202, 232, 234);
     $pdf->SetTextColor(12, 78, 139);
     $pdf->SetDrawColor(12, 78, 139);
     $pdf->SetLineWidth(0.3);
     $pdf->fill($relleno);
     //un arreglo con su medida  a lo ancho
     //un arreglo con alineacion de cada celda
     $pdf->_orientacion = $orientacion;
     $pdf->SetAligns($orientacion);
     $pdf->SetFillColor(224, 235, 255);
     $pdf->SetTextColor(0);
     $pdf->SetFont('');
     for ($i = 0; $i < $cantidadData; $i++) {
         $totInicialSum += $datos[$i]['saldoInicial'];
         $totIngresoSum += $datos[$i]['EntradaTotal'];
         $totFinalSum += $datos[$i]['SaldoFinal'];
         $fila = array(html_entity_decode($datos[$i]['codigopa'], ENT_QUOTES, 'UTF-8'), html_entity_decode($datos[$i]['nompro'], ENT_QUOTES, 'UTF-8'), number_format($datos[$i]['saldoInicial'], 2), number_format($datos[$i]['EntradaTotal'], 2), number_format($datos[$i]['saldoInicial'] + $datos[$i]['EntradaTotal'], 2), number_format($datos[$i]['SaldoFinal'], 2), number_format($datos[$i]['saldoInicial'] + $datos[$i]['EntradaTotal'] - $datos[$i]['SaldoFinal'], 2));
         $pdf->Row($fila);
         $relleno = !$relleno;
         $pdf->fill($relleno);
     }
     $pdf->ln();
     $relleno = false;
     $pdf->fill($relleno);
     $fila = array('', 'TOTALES', number_format($totInicialSum, 2), number_format($totIngresoSum, 2), number_format($totInicialSum + $totIngresoSum, 2), number_format($totFinalSum, 2), number_format($totInicialSum + $totIngresoSum - $totFinalSum, 2));
     $pdf->Row($fila);
     $pdf->AliasNbPages();
     $pdf->Output();
 }
 public function actionIngresosCliente()
 {
     $model = new IngresosClienteForm();
     $propiedades = Propiedad::model()->getDeUsuario(Yii::app()->user->id);
     $meses = array();
     for ($i = 1; $i <= 12; $i++) {
         $meses[] = array('id' => str_pad($i, 2, "0", STR_PAD_LEFT), 'nombre' => Tools::fixMes($i));
     }
     $agnos = array();
     $agnoInicio = 2000;
     $agnoFin = (int) date('Y') + 10;
     for ($i = $agnoInicio; $i < $agnoFin; $i++) {
         $agnos[] = array('id' => $i, 'nombre' => $i);
     }
     $model->agnoH = date('Y');
     $model->mesH = date('m');
     if ($model->mesH == '01') {
         $model->mesD = '12';
         $model->agnoD = (int) $model->agnoH - 1;
     } else {
         $mes = (int) $model->mesH;
         $model->mesD = str_pad($mes - 1, 2, "0", STR_PAD_LEFT);
         $model->agnoD = $model->agnoH;
     }
     if (isset($_POST['IngresosClienteForm'])) {
         $model->attributes = $_POST['IngresosClienteForm'];
         Yii::import('ext.phpexcel.XPHPExcel');
         $objPHPExcel = XPHPExcel::createPHPExcel();
         $sheet = $objPHPExcel->getActiveSheet();
         $sheet->setCellValue('A1', 'Planilla de Ingresos de Cliente');
         $sheet->mergeCells("A1:K1");
         $sheet->getStyle("A1")->getFont()->setSize(20);
         $sheet->setCellValue('A2', 'Rango de Fechas: Desde ' . Tools::fixMes($model->mesD) . " de " . $model->agnoD . " hasta " . Tools::fixMes($model->mesH) . " de " . $model->agnoH);
         $sheet->mergeCells("A2:K2");
         $sheet->getStyle("A2")->getFont()->setSize(15);
         $i = 4;
         $sheet->setCellValue('A' . $i, 'Fecha');
         $sheet->setCellValue('B' . $i, 'Propiedad');
         $sheet->setCellValue('C' . $i, 'Departamento');
         $sheet->setCellValue('D' . $i, 'Nombre');
         $sheet->setCellValue('E' . $i, 'Monto');
         $sheet->getStyleByColumnAndRow(0, $i, 4, $i)->getFont()->setBold(true);
         $fDesde = $model->agnoD . "-" . str_pad($model->mesD, 2, "0", STR_PAD_LEFT) . "-01";
         $fHasta = $model->agnoH . "-" . str_pad($model->mesH, 2, "0", STR_PAD_LEFT) . "-01";
         $i++;
         $movimientos = Movimiento::model()->getIngresosDePropietarioEntreFechas(Yii::app()->user->id, $fDesde, $fHasta);
         foreach ($movimientos as $movimiento) {
             $sheet->setCellValue('A' . $i, Tools::backFecha($movimiento->fecha));
             $sheet->setCellValue('B' . $i, $movimiento->cuentaCorriente->contrato->departamento->propiedad->nombre);
             $sheet->setCellValue('C' . $i, $movimiento->cuentaCorriente->contrato->departamento->numero);
             $sheet->setCellValue('D' . $i, $movimiento->cuentaCorriente->contrato->cliente->usuario->nombre . " " . $movimiento->cuentaCorriente->contrato->cliente->usuario->apellido . " (" . $movimiento->cuentaCorriente->contrato->cliente->rut . ")");
             $sheet->setCellValue('E' . $i, $movimiento->monto);
             $i++;
         }
         /*                $meses = Tools::arregloMeses($model->mesD, $model->agnoD, $model->mesH, $model->agnoH);
         
                     $sheet->getStyleByColumnAndRow(0,$i)->getFont()->setBold(true);
                     $j = 2;
                     if($model->abonosYCargos){
                         $j = 1;
                     }
                     foreach($meses as $mesArr){
                         $sheet->setCellValueByColumnAndRow($j, $i, $mesArr['mesNombre']." de ".$mesArr['agno']);
                         $sheet->getStyleByColumnAndRow($j,$i)->getFont()->setBold(true);
                         $j++;
                     }
                     $i++;
         
                     $departamentos = Departamento::model()->findAllByAttributes(array('propiedad_id'=>$propiedad->id));
                     foreach($departamentos as $departamento){
                         $j=0;
                         $sheet->setCellValueByColumnAndRow($j,$i, $departamento->numero);
                         $sheet->getStyleByColumnAndRow($j,$i)->getFont()->setBold(true);
                         if($model->abonosYCargos){
                             $j++;
                             $sheet->setCellValueByColumnAndRow($j, $i, "Cargos");
                             $sheet->setCellValueByColumnAndRow($j, $i+1, "Abonos");
                             $sheet->getStyleByColumnAndRow($j,$i,$j,$i+1)->getFont()->setBold(true);
                             $j++;
                         }
                         else{
                             $j = 1;
                         }
                         if($departamento->contrato != null){
                             if($departamento->contrato->cuentaCorriente != null){
                                 foreach($meses as $mesArr){
                                     $saldoMes = $departamento->contrato->cuentaCorriente->saldoMes($mesArr['mes'],$mesArr['agno']);
                                     if($model->abonosYCargos){
                                         $sheet->setCellValueByColumnAndRow($j, $i, $saldoMes['cargos']);
                                         $sheet->setCellValueByColumnAndRow($j, $i+1, $saldoMes['abonos']);
                                     }
                                     else{
                                         $sheet->setCellValueByColumnAndRow($j, $i, $saldoMes['abonos']);
                                     }
                                     $j++;
                                 }
                             }
                         }
                         if($model->abonosYCargos){
                             $i+=2;
                         }
                         else{
                             $i++;
                         }
                     }
         * 
         * 
         */
         $objPHPExcel->setActiveSheetIndex(0);
         header('Content-Type: application/vnd.ms-excel');
         header('Content-Disposition: attachment;filename="Movimientos Cliente.xls"');
         header('Cache-Control: max-age=0');
         // If you're serving to IE 9, then the following may be needed
         header('Cache-Control: max-age=1');
         // If you're serving to IE over SSL, then the following may be needed
         header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
         // Date in the past
         header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
         // always modified
         header('Cache-Control: cache, must-revalidate');
         // HTTP/1.1
         header('Pragma: public');
         // HTTP/1.0
         $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
         $objWriter->save('php://output');
         Yii::app()->end();
     }
     $this->render('ingresosCliente', array('model' => $model, 'meses' => $meses, 'agnos' => $agnos, 'propiedades' => $propiedades));
 }
示例#22
0
    <?php 
$id_art = $_POST['idsalida'];
$cantidad = $_POST['cantidadsalida'];
$saldo = $_POST['saldosalida'];
$almacenOrigen = $_POST['almacenOrigen'];
$radio = $_POST['RadioInline'];
$almacenDestino = $_POST['almacenDestino'];
$descripcion = $_POST['descripcion'];
if ($descripcion != '') {
    $descripcion = "-";
}
require_once '../Clases/clsMovimiento.php';
require_once '../Clases/clsAlmacen.php';
require_once '../util/funciones.php';
$objMovimiento = new Movimiento();
$objAlmacen = new Almacen();
$texto = "Operación Fallida";
if ($radio == 2) {
    $objMovimiento->AgregaMovimientoTrasferencia($id_art, $cantidad, $descripcion, $almacenOrigen, $almacenDestino);
} else {
    $objMovimiento->AgregaMovimientoSalida($cantidad, $descripcion, $almacenOrigen, $id_art);
}
//Funciones::mensaje($texto, "../Presentacion/Almacen/ListarArticulos.php", 's');
示例#23
0
 /**
  * @param	Movimiento $movimiento The movimiento object to add.
  */
 protected function doAddMovimiento($movimiento)
 {
     $this->collMovimientos[] = $movimiento;
     $movimiento->setProveedor($this);
 }
示例#24
0
 */
// Constantes para construir la respuesta
const ESTADO = 'estado';
const MENSAJE = 'mensaje';
const ID_HIDRANTE = "idHidrante";
const ID_MOVIMIENTO = "idmovimiento";
const CODIGO_EXITO = '1';
const CODIGO_FALLO = '2';
require 'hidrantes.php';
require 'movimientos.php';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // Decodificando formato Json
    $body = json_decode(file_get_contents("php://input"), true);
    // Insertar hidrante
    $idHidrante = Hidrante::insertRow($body);
    //$idHidrante = 1; ->Pruebas
    if ($idHidrante) {
        //Crear movimiento
        $movimiento = array('id_hidrante' => $idHidrante, 'fecha_mod' => date("Y-m-d H:i:s"), 'usuario_mod' => '0924102270');
        $idMovimiento = Movimiento::insertRow($movimiento);
        //$idMovimiento = 1; -> Pruebas
        $movimiento = array("idmovimiento" => $idMovimiento) + $movimiento;
        // Código de éxito
        print json_encode(array(ESTADO => CODIGO_EXITO, MENSAJE => 'Creacion exitosa', 'movimiento' => $movimiento));
    } else {
        // Código de falla
        print json_encode(array(ESTADO => CODIGO_FALLO, MENSAJE => 'Creacion fallida'));
    }
} else {
    print "Error";
}
示例#25
0
<?php

/**
 * Insertar un nuevo gasto en la base de datos
 */
// Constantes para construir la respuesta
const ESTADO = 'estado';
const MENSAJE = 'mensaje';
const ID_MOVIMIENTOS = "idmovimiento";
const CODIGO_EXITO = '1';
const CODIGO_FALLO = '2';
require 'movimientos.php';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // Decodificando formato Json
    $body = json_decode(file_get_contents("php://input"), true);
    // Insertar gasto
    $idMovimiento = Movimiento::insertRow($body);
    if ($idHidrante) {
        // Código de éxito
        print json_encode(array(ESTADO => CODIGO_EXITO, MENSAJE => 'Creación exitosa', ID_MOVIMIENTO => $idMovimiento));
    } else {
        // Código de falla
        print json_encode(array(ESTADO => CODIGO_FALLO, MENSAJE => 'Creación fallida'));
    }
}
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getMovimientos()
 {
     return $this->hasMany(Movimiento::className(), ['idcuenta' => 'idcuenta']);
 }
示例#27
0
<?php

$id = $_POST["id"];
$articulo = $_POST["articulo"];
require_once '../Clases/clsMovimiento.php';
$objMovimiento = new Movimiento();
$objMovimiento->ListarSalidasArticulo($id, $articulo);
示例#28
0
 function registra()
 {
     $dataMovimiento = $_REQUEST['Movimiento'];
     $idOrdenCompra = $dataMovimiento[idordencompra];
     $numero = $_REQUEST['txtCantidadDetalleMovimiento'];
     $producto = new Producto();
     $movimiento = new Movimiento();
     $detalleMovimiento = new Detallemovimiento();
     $ordenCompra = new Ordencompra();
     $detalleOrdenCompra = new Detalleordencompra();
     $historialProducto = new Historialproducto();
     $exitoMovimiento = $movimiento->grabaMovimiento($dataMovimiento);
     $operacion = $dataMovimiento[idtipomovimiento] == 1 ? "+" : "-";
     //Si el concepto movimiento es ingreso por compras
     if ($dataMovimiento[idordencompra]) {
         $dataOrdenCompra = array('registrado' => '1');
         $exitoOrdenCompra = $ordenCompra->actualizaOrdenCompra($dataOrdenCompra, $idOrdenCompra);
         for ($i = 1; $i <= $numero; $i++) {
             $datosDetalleMovimiento = $_REQUEST['Detallemovimiento' . $i];
             $datosProducto = $_REQUEST['Producto' . $i];
             if ($datosDetalleMovimiento[estado]) {
                 $cantidad = $datosDetalleMovimiento[cantidadrecibida];
                 $idProducto = $datosDetalleMovimiento[idproducto];
                 $iddetalleordencompra = $datosDetalleMovimiento[iddetalleordencompra];
                 //Obtenemos el stock actual y agregamos el elemento stockactual al
                 //array $datosProducto y lo actualizamos la tabla wc_producto
                 $dataProducto = $producto->buscaProducto($idProducto);
                 $datosProducto['stockactual'] = $dataProducto[0]['stockactual'] + $cantidad;
                 $exitoProducto = $producto->actualizaProducto($datosProducto, $idProducto);
                 //Actualizamos la cantidadrecibida de la tabla wc_detalleordencompra
                 $cantidadRecibida = array('cantidadrecibida' => $cantidad);
                 $exitoDetalleOrdenCompra = $detalleOrdenCompra->actualizaDetalleOrdenCompra($cantidadRecibida, $iddetalleordencompra);
                 //Preparar el array $datosProducto para insertar registro en al tabla
                 //wc_historialproducto. Eliminamos los elemtos stockactual y preciolista
                 //luego agregamos idproducto y cantidad.
                 unset($datosProducto['stockactual']);
                 unset($datosProducto['preciolista']);
                 $datosProducto['idproducto'] = $idProducto;
                 $datosProducto['cantidad'] = $cantidad;
                 $datosProducto['fecha'] = date('Y/m/d');
                 $exitoHistorialProducto = $historialProducto->grabaHistorialProducto($datosProducto);
                 //Preparamos el array $datosDetalleMovimiento para insertar registro en la
                 //tabla wc_detallemovimiento.
                 unset($datosDetalleMovimiento['iddetalleordencompra']);
                 unset($datosDetalleMovimiento['estado']);
                 array_splice($datosDetalleMovimiento, -2);
                 $datosDetalleMovimiento['cantidad'] = $cantidad;
                 $exitoDetalleMovimiento = $detalleMovimiento->grabaDetalleMovimieto($datosDetalleMovimiento);
             }
         }
         if ($exitoMovimiento and $exitoOrdenCompra and $exitoProducto and $exitoDetalleOrdenCompra and $exitoHistorialProducto and $exitoDetalleMovimiento) {
             $ruta['ruta'] = "/movimiento/listar";
             $this->view->show("ruteador.phtml", $ruta);
         }
     } else {
         $dataDetalleMovimiento = array_splice($_REQUEST, 3, count($_REQUEST) - 8);
         foreach ($dataDetalleMovimiento as $data) {
             $cantidad = $data[cantidad];
             $idProducto = $data[idproducto];
             $dataProducto = $producto->buscaProducto($idProducto);
             $stockActual = $dataProducto[0]['stockactual'];
             $stockNuevo = $operacion == '+' ? array('stockactual' => $stockActual + $cantidad) : array('stockactual' => $stockActual - $cantidad);
             $exitoDetalleMovimiento = $detalleMovimiento->grabaDetalleMovimieto($data);
             $exitoProducto = $producto->actualizaProducto($stockNuevo, $idProducto);
         }
         if ($exitoMovimiento and $exitoDetalleMovimiento and $exitoProducto) {
             $ruta['ruta'] = "/movimiento/listar";
             $this->view->show("ruteador.phtml", $ruta);
         }
     }
 }
示例#29
0
 /**
  * @param	Movimiento $movimiento The movimiento object to add.
  */
 protected function doAddMovimiento($movimiento)
 {
     $this->collMovimientos[] = $movimiento;
     $movimiento->setCliente($this);
 }
 function registra()
 {
     /*Pasos a realizar*/
     /*1.- Cabeceras: Se registra el movimiento y se actualiza la orden de compra*/
     $dataMovimiento = $_REQUEST['Movimiento'];
     $dataMovimiento['idtipooperacion'] = 2;
     $dataMovimiento['iddocumentotipo'] = $dataMovimiento['tipodoc'];
     $dataMovimiento['serie'] = $dataMovimiento['serie'];
     if ($dataMovimiento['serie'] != "" && $dataMovimiento['ndocumento'] != "") {
         $dataMovimiento['essunat'] = 1;
     }
     $idOrdenCompra = $dataMovimiento['idordencompra'];
     $movimiento = new Movimiento();
     $exito1 = $movimiento->grabaMovimiento($dataMovimiento);
     $ordenCompra = new Ordencompra();
     //Tipo de Cambio Vigente:
     /*$tc=New TipoCambio();
     		$tcv=$tc->consultavigente(2);
     		$tipocambio=$tcv[0]['venta'];*/
     //Tipo Cambio de la Orden:
     $tcv = $ordenCompra->TipoCambioxIdOrdenCompra($idOrdenCompra);
     $tipocambio = $tcv[0]['tipocambiovigente'];
     // echo $tipocambio;
     // exit;
     $oc['registrado'] = 1;
     $exito2 = $ordenCompra->actualizaOrdenCompra($oc, $idOrdenCompra);
     /*2.- Detalle: Se registra el detalle del movimiento y actualiza el detalle de la orden*/
     $dataDetalleMovimiento = $_REQUEST['Detallemovimiento'];
     $detalleMovimiento = new Detallemovimiento();
     $detalleOrdenCompra = new Detalleordencompra();
     /*3.- Actualizando la tabla de productos y su historial*/
     $dataProducto = $_REQUEST['Producto'];
     $producto = new Producto();
     // Para actualizar los Stocks y precio valorizado
     $historialProducto = new Historialproducto();
     // Para grabar precios de productos
     //Verificando que se grabaron las cabeceras
     if ($exito1 and $exito2) {
         //if(1==1){
         $items = count($dataDetalleMovimiento);
         for ($i = 1; $i <= $items; $i++) {
             //Definiendo datos a grabar:
             $iddetalleordencompra = $dataDetalleMovimiento[$i]['iddetalleordencompra'];
             $idProducto = $dataDetalleMovimiento[$i]['idproducto'];
             //$precioCosto=$dataDetalleMovimiento[$i]['preciocosto'];
             $precioCosto = $tipocambio * $dataDetalleMovimiento[$i]['preciocosto'];
             $cantidadRecibida = $dataDetalleMovimiento[$i]['cantidadrecibidaoc'];
             $cantidadsolicitada = $dataDetalleMovimiento[$i]['cantidadsolicitadaoc'];
             $importe = round($precioCosto * $cantidadRecibida, 2);
             $stockactual = $dataProducto[$i]['stockactual'];
             $stockdisponible = $dataProducto[$i]['stockdisponible'];
             $precioactual = $dataProducto[$i]['precioactual'];
             $stockproducto = $stockactual + $cantidadRecibida;
             $stockDisp = $stockdisponible + $cantidadRecibida - $cantidadsolicitada;
             //$stockdisponible=$stockproducto+$cantidadRecibida;
             $fecha = date("Y/m/d");
             //Actualizar la Orden de Compra, con la cantidad recibida.
             $doc['cantidadrecibidaoc'] = $cantidadRecibida;
             $exito3 = $detalleOrdenCompra->actualizaDetalleOrdenCompra($doc, $iddetalleordencompra);
             //DetalleMovimiento
             $ddm['idmovimiento'] = $exito1;
             $ddm['idproducto'] = $idProducto;
             $ddm['pu'] = $precioCosto;
             $ddm['cantidad'] = $cantidadRecibida;
             $ddm['importe'] = $importe;
             $ddm['stockactual'] = $stockproducto;
             //Valorizando el producto:
             $preciovalorizado = ($precioCosto * $cantidadRecibida + $stockactual * $precioactual) / $stockproducto;
             $preciovalorizado = round($preciovalorizado, 2);
             $ddm['preciovalorizado'] = $preciovalorizado;
             $exito4 = $detalleMovimiento->grabaDetalleMovimieto($ddm);
             //Actualizando datos del producto:
             $dp['stockactual'] = $stockproducto;
             $dp['stockdisponible'] = $stockDisp;
             $dp['esagotado'] = 0;
             if ($_REQUEST['vbimportaciones'] == 1) {
                 $dp['preciocosto'] = $preciovalorizado;
             }
             //$dp['stockdisponible']=$stockdisponible;
             $exito5 = $producto->actualizaProducto($dp, $idProducto);
             //Creando el historial del Producto
             $dhp['idordencompra'] = $idOrdenCompra;
             $dhp['idproducto'] = $idProducto;
             $dhp['fentrada'] = date("Y/m/d");
             $dhp['cantidadentrada'] = $cantidadRecibida;
             $dhp['stockactual'] = $stockproducto;
             $exito6 = $historialProducto->grabaHistorialProducto($dhp);
         }
         if ($exito3 and $exito4 and $exito5 and $exito6) {
             $ruta['ruta'] = "/almacen/regordencompra";
             $this->view->show("ruteador.phtml", $ruta);
         }
     }
 }