예제 #1
0
 list($Dia, $Mes, $Anio) = $ar_fecha;
 $fecha = $Anio . '-' . $Mes . '-' . $Dia;
 if (!checkdate($Mes, $Dia, $Anio)) {
     $error['Fecha'] = 'Fecha Incorrecta';
 }
 #Total
 $Total = strip_tags($_POST["TotalPedido"]);
 if (count($error) > 0) {
     $errores = implode(', ', $error);
     $response['error'] = $errores;
     echo json_encode($response);
     die(0);
 }
 $response['error'] = '';
 $idOC = $_POST["idOC"];
 $OBJ->set_Valor($Cliente, 'int_IdProveedor');
 $OBJ->set_Valor($fecha, 'dt_Fecha');
 $OBJ->set_Valor($Total, 'flt_Total');
 if ($idOC == 0) {
     $idOC = $OBJ->insert_oc();
 } else {
     $OBJ->set_Union($idOC, 'int_IdOrdenCompra');
     $OBJ->update_oc();
 }
 $response['idOC'] = $idOC;
 $OBJ1 = new Usuario();
 $OBJ1->set_Dato($idOC, 'int_IdOrdenCompra');
 $OBJ1->set_UnionT($tag, 'txt_Tag');
 $response['sql'] = $OBJ1->join_pedido_oc();
 break;
 /* ------------------------------- */
예제 #2
0
 public function aumentar_kardex_from_pe($idDoc)
 {
     /*
     Esta funcion va a aumentar el detalle de un documento Parte de entrada al kardex y aumentar el respectivo stock
     */
     $sql = '';
     $data = array();
     $response = array();
     #
     $enc_fecha = '';
     $enc_tipodoc = '';
     $enc_numdoc = '';
     $enc_cliente = '';
     $mascara = '';
     #
     $sql = " SELECT * FROM `utb_parte_entrada` v INNER JOIN `utb_clientes` c ON c.`int_IdCliente` = v.`int_IdProveedor` AND v.`int_IdParteEntrada` = " . $idDoc;
     #
     $data = $this->QueryArray($sql, MYSQL_ASSOC);
     if (is_array($data)) {
         #Obtener los encabezados del Documento
         foreach ($data as $key => $rs) {
             $enc_fecha = $rs->dt_Fecha;
             $enc_tipodoc = 'PE';
             $enc_numdoc = $rs->int_IdParteEntrada;
             $enc_cliente = $rs->var_Nombre;
             $mascara = 'Parte Entrada ' . sprintf("%05s", $enc_numdoc);
         }
         #Obtener los detalles del Documento
         $sql = " SELECT *, d.int_Cantidad as 'cant', p.var_Nombre as 'prod', um.var_Nombre as 'um', d.int_IdUnidadMedida as 'idum', d.`var_Lote` as 'lote', d.`var_Laboratorio` as 'lab', d.`dt_Vencimiento` as 'fecha' FROM `utb_parte_entrada_detalle` d INNER JOIN `utb_productos` p ON d.`int_IdProducto` = p.`int_IdProducto` \n            INNER JOIN `utb_unidad_medida` um on um.int_IdUM = d.int_IdUnidadMedida AND d.`int_IdParteEntrada` = " . $idDoc;
         $data = $this->QueryArray($sql, MYSQL_ASSOC);
         $lasIdKardex = 0;
         if (is_array($data)) {
             foreach ($data as $key => $rd) {
                 $tipoMov = '';
                 $equiv = 0;
                 #(int)$this->get_equivalencia_un_producto( $rd["int_IdProducto"] , $rd["idum"] );
                 $cant_proc = 0;
                 $saldo_act = 0;
                 $det_entrada = (int) $rd->cant;
                 $det_saldo = (int) $this->get_saldo_producto($rd->int_IdProducto);
                 #Voy a descargar la cantidad del doc de ventas x el equivalente (frasco = 10, caja = 30 etc.)
                 $cant_proc = $det_entrada;
                 //* $equiv
                 /* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
                 $tipoMov = 'I';
                 $saldo_act = $det_saldo + $cant_proc;
                 $concepto = 'Ingreso por Parte Entrada';
                 /* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
                 #return 'saldo actual: '.$equiv;
                 $det_idProd = $rd->int_IdProducto;
                 $det_NombProd = $rd->prod;
                 $det_unidadMedi = $rd->um;
                 #
                 $precioVenta = 0;
                 $precioCompra = 0;
                 $utilidad = 0;
                 $id_Unid = '';
                 #Ahora inserto el kardex.
                 $precioVenta = $rd->ftl_Precio_Venta;
                 $precioCompra = $rd->flt_Precio_Compra;
                 $utilidad = $rd->flt_Utilidad;
                 $id_Unid = $rd->idum;
                 #Creando el Lote del producto
                 $stock_lote = 0;
                 $new_stock_L = 0;
                 $idLote = 0;
                 $lote = $rd->lote;
                 $stock_lote = $this->stock_lote_producto($det_idProd, $lote);
                 $new_stock_L = $stock_lote + $det_entrada;
                 $lab = $rd->lab;
                 $fecha = $rd->fecha;
                 $idLote = $this->crear_lote_prod($det_idProd, $lote, $fecha, $lab, $new_stock_L);
                 #
                 $k = array();
                 $k["dt_Fecha"] = MySQL::SQLValue($enc_fecha, MySQL::SQLVALUE_DATETIME);
                 $k["chr_Concepto"] = MySQL::SQLValue($tipoMov, MySQL::SQLVALUE_TEXT);
                 $k["var_Descri"] = MySQL::SQLValue($concepto, MySQL::SQLVALUE_TEXT);
                 $k["chr_TipoDoc"] = MySQL::SQLValue($enc_tipodoc, MySQL::SQLVALUE_TEXT);
                 $k["var_NumeroDoc"] = MySQL::SQLValue($enc_numdoc, MySQL::SQLVALUE_TEXT);
                 $k["var_Cliente"] = MySQL::SQLValue($enc_cliente, MySQL::SQLVALUE_TEXT);
                 $k["int_Entrada"] = MySQL::SQLValue($cant_proc, MySQL::SQLVALUE_NUMBER);
                 $k["int_Saldo"] = MySQL::SQLValue($saldo_act, MySQL::SQLVALUE_NUMBER);
                 $k["int_IdProducto"] = MySQL::SQLValue($det_idProd, MySQL::SQLVALUE_NUMBER);
                 $k["int_IdLote"] = MySQL::SQLValue($idLote, MySQL::SQLVALUE_NUMBER);
                 $k["var_NombreProducto"] = MySQL::SQLValue($det_NombProd . ' Lote: ' . $lote, MySQL::SQLVALUE_TEXT);
                 $k["var_UnidadMedida"] = MySQL::SQLValue($det_unidadMedi, MySQL::SQLVALUE_TEXT);
                 $k["var_Mascara"] = MySQL::SQLValue($mascara, MySQL::SQLVALUE_TEXT);
                 #
                 $lasIdKardex = $this->InsertRow('utb_kardex_actual', $k);
                 unset($k);
                 #Actualizar Stock en tabla productos.
                 $k = array();
                 $p = array();
                 /*06 07 15, desactivo esto por que el stock se maneja por lotes.*/
                 $this->update_stock_producto($det_idProd, $saldo_act);
                 /*Actualizar ID Lote, para anular si es necesario*/
                 $k["int_IdLote"] = MySQL::SQLValue($idLote, MySQL::SQLVALUE_NUMBER);
                 $p["int_IdDetallePE"] = MySQL::SQLValue($rd->int_IdDetallePE, MySQL::SQLVALUE_NUMBER);
                 $this->UpdateRows('utb_parte_entrada_detalle', $k, $p);
                 #Precios de productos, ya que el parte de entrada afecta al precio de los productos.
                 $OBJP = array();
                 $OBJP = new Usuario();
                 $arr_old_Data = array();
                 $tex_data = array();
                 $t = '';
                 $tex_data = $this->get_data_un_producto(" AND p.int_IdProducto = " . $det_idProd);
                 if (is_array($tex_data)) {
                     foreach ($tex_data as $key => $rsx) {
                         $t = $rsx->data;
                     }
                     $arr_old_Data = explode("|", $t);
                     $OBJP->set_Valor($arr_old_Data[2], 'flt_old_Precio_Compra');
                     $OBJP->set_Valor($arr_old_Data[1], 'ftl_old_Precio_Venta');
                     $OBJP->set_Valor($arr_old_Data[4], 'flt_old_Utilidad');
                     $OBJP->set_Valor('PE', 'char_TipoDoc');
                     $OBJP->set_Valor($enc_numdoc, 'var_Doc');
                 }
                 $OBJP->set_Valor($det_idProd, 'int_IdProducto');
                 $OBJP->set_Valor($id_Unid, 'int_IdUM');
                 $OBJP->set_Valor('2', 'int_TipoCalculo');
                 #
                 $OBJP->set_Valor($precioCompra, 'flt_Precio_Compra');
                 $OBJP->set_Valor($precioVenta, 'ftl_Precio_Venta');
                 $OBJP->set_Valor($utilidad, 'flt_Utilidad');
                 $OBJP->set_Valor($concepto, 'var_Descri');
                 #Anulando productos anteriores.
                 $OBJP->anular_precios_producto($det_idProd);
                 #Guardando Precio Producto
                 $OBJP->insert_Precio_Producto();
                 /*
                 
                                     #Ahora actualizo las promociones amarradas a este producto.
                                     #$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                                     $OBJP->update_precio_promo_prod( $det_idProd );
                                     /**/
             }
             /* END FOREACH */
         }
         return $lasIdKardex;
     } else {
         return 0;
     }
 }
예제 #3
0
             foreach ($data_clase as $key => $rs) {
                 $idProd = 0;
                 $idProd = $rs->idp;
                 $arr_prec = explode(',', $OBJ1->get_precio_producto1($idProd));
                 $precio = 0;
                 $promo = 0;
                 $proct = 0;
                 $precio = $arr_prec[0];
                 if ($cboAplicar == 'PrecioFijo') {
                     $promo = $Valor;
                 } else {
                     $proct = $precio * $Valor / 100;
                     $promo = $precio - $proct;
                 }
                 #
                 $OBJ1->set_Valor($idPromo, 'int_IdPromo');
                 $OBJ1->set_Valor($idProd, 'int_IdProducto');
                 $OBJ1->set_Valor($precio, 'flt_Precio');
                 $OBJ1->set_Valor($promo, 'flt_Promo');
                 $OBJ1->set_Valor($Nombre, 'var_Descri');
                 $OBJ1->set_Valor($cboAplicar, 'var_Aplicar');
                 $OBJ1->set_Valor($Valor, 'flt_Valor');
                 $OBJ1->insert_producto_promocion();
             }
             break;
     }
     #devolver los productos afectados
     $response['data'] = $OBJ->get_productos_in_promo($idPromo);
 }
 break;
 // -------------------------------------------------
예제 #4
0
$existe = '';
$id = '';
$idPedido = 0;
$Cliente = '';
$fecha = '';
$Total = 0;
$tag = strip_tags($_POST["tag"]);
if ($_POST["idPedido"] == "0") {
    $filtro = 'insertPedido';
}
switch ($filtro) {
    /* ------------------------------- */
    case 'update_cant':
        $id = $_POST["id"];
        $cant = $_POST["cant"];
        $OBJ->set_Valor($cant, 'int_Cant');
        $OBJ->set_Union($id, 'int_IdDetalleInv');
        $OBJ->update_cant_detinv();
        #
        break;
        /* ------------------------------- */
    /* ------------------------------- */
    case 'get_clases':
        $response = $OBJ->get_all_clases('');
        break;
        /* ------------------------------- */
    /* ------------------------------- */
    case 'get_almacenes':
        $response = $OBJ->get_all_almacenes('');
        break;
        /* ------------------------------- */
예제 #5
0
     # Devuelve todas los productos genericos
     $response = $OBJ->get_all_genericos('');
     break;
     // -------------------------------------------------
 // -------------------------------------------------
 case 'get-data-generico':
     # Devuelve todos los datos de un generico
     $id = $_POST["idc"];
     $response = $OBJ->get_data_generico($id);
     break;
     // -------------------------------------------------
 // -------------------------------------------------
 case 'update':
     $id = $_POST["idGenerico"];
     $nombre = $_POST["txtNombre"];
     $OBJ->set_Valor($nombre, 'var_Nombre');
     $OBJ->set_Union($id, 'int_IdGenerico');
     $OBJ->update_Generico_Producto();
     $response['id'] = $id;
     $response['existe'] = 'no';
     break;
     // -------------------------------------------------
 // -------------------------------------------------
 case 'del':
     $id = $_POST["idc"];
     $OBJ->set_Valor('DEL', 'chr_Estado');
     $OBJ->set_Union($id, 'int_IdGenerico');
     $OBJ->update_Generico_Producto();
     $response['id'] = $id;
     $response['existe'] = 'no';
     break;
예제 #6
0
            case '#Anulados':
                $response = $OBJ->get_listado_ventas(" AND v.chr_Estado = 'DEL' ");
                break;
        }
        break;
        /* ------------------------------- */
    /* ------------------------------- */
    case 'buscar':
        $fecha = $_POST["fecha"];
        $fecha_formato = '';
        if ($fecha == '') {
            return '';
        }
        $arr_fecha = array();
        $arr_fecha = explode('/', $fecha);
        $fecha_formato = $arr_fecha[2] . '-' . $arr_fecha[1] . '-' . $arr_fecha[0];
        $response = $OBJ->get_listado_ventas(" AND v.dt_Fecha = '" . $fecha_formato . "' ");
        break;
        /* ------------------------------- */
    /* ------------------------------- */
    case 'menosKardex':
        $idv = $_POST["idv"];
        $response['v'] = $OBJ->disminuir_kardex($idv);
        $OBJ1 = new Usuario();
        $OBJ1->set_Valor('CER', 'chr_Estado');
        $OBJ1->set_Union($idv, 'int_idVenta');
        $OBJ1->update_ventas();
        break;
        /* ------------------------------- */
}
echo json_encode($response);
예제 #7
0
     $OBJ1->update_pe();
     break;
     /* ------------------------------- */
 /* ------------------------------- */
 case 'copy':
     $idp = $_POST["idp"];
     $response['id'] = $OBJ->copiar_parte_entrada($idp);
     break;
     /* ------------------------------- */
 /* ------------------------------- */
 case 'delPE':
     $idpe = $_POST["idpe"];
     $estadoDoc = $OBJ->get_estado_doc($idpe, 'PE');
     #
     $OBJ->set_Union($idpe, 'int_IdParteEntrada');
     $OBJ->set_Valor('DEL', 'chr_Estado');
     $OBJ->update_pe();
     #
     $response['id'] = $estadoDoc;
     if ($estadoDoc == 'CER') {
         #Muevo el kardex.
         $OBJ->anular_kardex_from_pe($idpe);
     }
     break;
     /* ------------------------------- */
 /* ------------------------------- */
 case 'getItem':
     $idp = $_POST["idp"];
     $response = $OBJ->get_detalle_pe01(" AND p.int_IdDetallePE = " . $idp);
     break;
     /* ------------------------------- */
예제 #8
0
 $data_eqv = array();
 $um = '';
 $idp = '';
 $newprecio = 0;
 $newcompra = 0;
 $cant = 0;
 $data_eqv = $OBJ->get_equivalencias_producto_for_precio($id_producto);
 /*if( is_array($data_eqv) ){
 		foreach ($data_eqv as $key => $rse) {*/
 $um = 1;
 #$rse["um"];
 $idp = $id_producto;
 $cant = 1;
 #$rse["cant"];
 #-------------------------------------------
 $OBJ->set_Valor($idp, 'int_IdProducto');
 $OBJ->set_Valor($um, 'int_IdUM');
 $OBJ->set_Valor($tabActive, 'int_TipoCalculo');
 if ($tabActive == '1') {
     $newcompra = $txtPreCompra1 * $cant;
     $OBJ->set_Valor($newcompra, 'flt_Precio_Compra');
     $newprecio = $txtPv1 * $cant;
     $OBJ->set_Valor($newprecio, 'ftl_Precio_Venta');
     $OBJ->set_Valor($txtUtilidad1, 'flt_Utilidad');
 } else {
     #Calculo por precio de venta
     $newcompra = $txtPreCompra2 * $cant;
     $OBJ->set_Valor($newcompra, 'flt_Precio_Compra');
     $newprecio = $txtPv2 * $cant;
     $OBJ->set_Valor($newprecio, 'ftl_Precio_Venta');
     $OBJ->set_Valor($txtUtilidad2, 'flt_Utilidad');
예제 #9
0
     #
     $estadoDoc = $OBJ->get_estado_doc($id, 'V');
     #
     $OBJ->set_Union($id, 'int_idVenta');
     $OBJ->set_Valor('DEL', 'chr_Estado');
     $OBJ->set_Valor($iduser, 'int_idUserAnula');
     $OBJ->set_Valor($hoy, 'dt_Anulado');
     $OBJ->set_Valor($texto, 'txt_MotivoAnulado');
     $response['q'] = $OBJ->update_ventas();
     if ($estadoDoc == 'CER') {
         #Muevo el kardex.
         $OBJ->anular_kardex($id);
     }
     #Movimiento de Caja.
     $OBJ = new Usuario();
     $OBJ->set_Valor('DEL', 'chr_Estado');
     $OBJ->set_Union($id, 'int_IdVenta');
     $OBJ->update_caja();
     break;
     /* ------------------------------- */
 /* ------------------------------- */
 case 'goBoleta':
     $idp = $_POST["idp"];
     $TipoDoc = $_POST["TipoDoc"];
     $response['idVenta'] = $OBJ->facturar_pedido($TipoDoc, $idp);
     break;
     /* ------------------------------- */
 /* ------------------------------- */
 case 'copy':
     $idp = $_POST["idp"];
     $response['id'] = $OBJ->copiar_pedido($idp);
예제 #10
0
$OBJ->set_Valor($id_producto, 'int_IdProducto');
$OBJ->set_Valor($um, 'int_IdUM');
$OBJ->set_Valor($tabActive, 'int_TipoCalculo');
#Calculo por precio de venta
$OBJ->set_Valor($venta_producto, 'flt_Precio_Compra');
$OBJ->set_Valor($venta_producto, 'ftl_Precio_Venta');
$OBJ->set_Valor($utilidad_producto, 'flt_Utilidad');
#Guardando Precio Producto
$OBJ->insert_Precio_Producto();
#Actualizo el precio del productos en las promociones.
$response['promo'] = $OBJc->update_precio_promo_prod($id_producto);
#ENCABEZADO PARTE DE ENTRADA
$OBJ = array();
$OBJ = new Usuario();
$hoy = date("Y-m-d");
$OBJ->set_Valor('1', 'int_IdProveedor');
$OBJ->set_Valor($hoy, 'dt_Fecha');
$OBJ->set_Valor($compra_producto, 'flt_Total');
if ($idPE == 0) {
    $idPE = $OBJ->insert_pe();
} else {
    $OBJ->set_Union($idPE, 'int_IdParteEntrada');
    $OBJ->update_pe();
}
$response['idPE'] = $idPE;
$OBJ1 = new Usuario();
$OBJ1->set_Dato($idPE, 'int_IdParteEntrada');
$OBJ1->set_UnionT($tag, 'txt_Tag');
$response['sql'] = $OBJ1->join_pe_detalle();
#DETALLE PARTE DE ENTRADA
$OBJ->set_Dato($id_producto, 'int_IdProducto');
예제 #11
0
$response = array();
$error = array();
$filtro = '';
$filtro = $_POST["f"];
$existe = '';
$id = '';
$idPedido = 0;
$Cliente = '';
$fecha = '';
$Total = 0;
$tag = strip_tags($_POST["tag"]);
switch ($filtro) {
    /* ------------------------------- */
    case 'menosKardex':
        #Se cierra la venta y se mueve el kardex
        $idv = $_POST["idv"];
        $idu = $_POST["idu"];
        $response['v'] = $OBJ->disminuir_kardex($idv);
        $OBJ1 = new Usuario();
        $OBJ1->set_Valor('CER', 'chr_Estado');
        $OBJ1->set_Union($idv, 'int_idVenta');
        $OBJ1->update_ventas();
        #Agregar movimiento de caja.
        $OBJ = new Usuario();
        $OBJ->set_Valor($idv, 'int_IdVenta');
        $OBJ->set_Valor($idu, 'int_IdUsuario');
        $OBJ->insert_caja();
        break;
        /* ------------------------------- */
}
echo json_encode($response);
예제 #12
0
     $TipoDoc = $_POST["TipoDoc"];
     $serie = $_POST["serie"];
     $response['idVenta'] = $OBJ->facturar_pedido($TipoDoc, $idp, $serie, $idUsuarioZiel);
     break;
     /* ------------------------------- */
 /* ------------------------------- */
 case 'copy':
     $idp = $_POST["idp"];
     $response['id'] = $OBJ->copiar_pedido($idp, $idu);
     break;
     /* ------------------------------- */
 /* ------------------------------- */
 case 'delPedido':
     $idp = $_POST["idp"];
     $OBJ->set_Union($idp, 'int_IdPedido');
     $OBJ->set_Valor('DEL', 'chr_Estado');
     $response['id'] = $OBJ->update_pedido();
     break;
     /* ------------------------------- */
 /* ------------------------------- */
 case 'getItem':
     $idp = $_POST["idp"];
     $response = $OBJ->get_detalle_pedido01(" AND p.int_IdDetallePedido = " . $idp);
     break;
     /* ------------------------------- */
 /* ------------------------------- */
 case 'delItem':
     $idItem = $_POST["idItem"];
     $idp = $_POST["idp"];
     $OBJ->set_Dato($idItem, 'int_IdDetallePedido');
     $OBJ->delete_detalle_pedido();
예제 #13
0
     break;
     // -------------------------------------------------
 // -------------------------------------------------
 case 'get-data-cliente':
     # Devuelve todos los datos de una clase
     $id = $_POST["idc"];
     $response = $OBJ->get_data_cliente($id);
     break;
     // -------------------------------------------------
 // -------------------------------------------------
 case 'update':
     $id = $_POST["idCliente"];
     $nombre = $_POST["txtNombre"];
     $ruc = $_POST["txtRuc"];
     $dir = $_POST["txtDir"];
     $OBJ->set_Valor($nombre, 'var_Nombre');
     $OBJ->set_Valor($ruc, 'var_Ruc');
     $OBJ->set_Valor($dir, 'var_Dir');
     $OBJ->set_Union($id, 'int_IdCliente');
     $OBJ->update_Cliente();
     $response['id'] = $id;
     $response['existe'] = 'no';
     break;
     // -------------------------------------------------
 // -------------------------------------------------
 case 'del':
     $id = $_POST["idc"];
     $OBJ->set_Valor('DEL', 'chr_Estado');
     $OBJ->set_Union($id, 'int_IdCliente');
     $OBJ->update_Cliente();
     $response['id'] = $id;