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; }
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(); }
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); }
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'); } } }
/** * 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(); }
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'); }
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); }
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>"; }
<?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'; }
<? 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'];
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)); }
<?php $almacen = $_POST["id"]; require_once '../Clases/clsMovimiento.php'; $objMovimiento = new Movimiento(); $objMovimiento->ListarEntradas($almacen);
/** * 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'); } }
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")); } }
<?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; }
<?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') {
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)); }
<?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');
/** * @param Movimiento $movimiento The movimiento object to add. */ protected function doAddMovimiento($movimiento) { $this->collMovimientos[] = $movimiento; $movimiento->setProveedor($this); }
*/ // 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"; }
<?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']); }
<?php $id = $_POST["id"]; $articulo = $_POST["articulo"]; require_once '../Clases/clsMovimiento.php'; $objMovimiento = new Movimiento(); $objMovimiento->ListarSalidasArticulo($id, $articulo);
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); } } }
/** * @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); } } }