query("SELECT a.fact_num, status AS estatus,a.comentario, CASE WHEN a.moneda = 'BS' THEN a.saldo ELSE ROUND(a.saldo/a.tasa,2) END AS saldo, fec_emis,fec_venc,a.co_cli,b.cli_des, (CASE WHEN b.campo8 <> '' THEN CAST(b.campo8 AS INTEGER) ELSE 0 END) AS credito, ISNULL((SELECT CAST(SUM(CASE WHEN n.tipo_doc IN ('N/DB','GIRO','CHEQ','FACT','AJPA','AJPM') THEN n.saldo / tasa ELSE (n.saldo * -1) / tasa END) AS DECIMAL(18,2)) FROM TECH_A.dbo.docum_cc n WHERE n.co_cli = b.co_cli AND n.anulado = 0 AND n.saldo > 0 GROUP BY n.co_cli ),0) AS saldo, a.co_ven,c.ven_des,ven_des,a.co_tran,des_tran,a.dir_ent,a.forma_pag,e.cond_des,a.revisado, CASE WHEN a.moneda = 'BS' THEN a.tot_bruto ELSE ROUND(a.tot_bruto/a.tasa,2) END AS tot_bruto, CASE WHEN a.moneda = 'BS' THEN a.tot_neto ELSE ROUND(a.tot_neto/a.tasa,2) END AS tot_neto, CASE WHEN a.moneda = 'BS' THEN a.glob_desc ELSE ROUND(a.glob_desc/a.tasa,2) END AS glob_desc, CASE WHEN a.moneda = 'BS' THEN a.iva ELSE ROUND(a.iva/a.tasa,2) END AS iva,impresa,a.aux02,tasa,moneda,anulada,b.co_zon,f.zon_des, (SELECT MAX(reng_num) FROM TECH_A.dbo.reng_ped WHERE fact_num = a.fact_num) AS reng_max FROM TECH_A.dbo.pedidos a LEFT JOIN TECH_A.dbo.clientes b ON b.co_cli = a.co_cli LEFT JOIN TECH_A.dbo.vendedor c ON c.co_ven = a.co_ven LEFT JOIN TECH_A.dbo.transpor d ON d.co_tran = a.co_tran LEFT JOIN TECH_A.dbo.condicio e ON e.co_cond = a.forma_pag LEFT JOIN TECH_A.dbo.zona f ON f.co_zon = b.co_zon WHERE a.status = 0 AND a.anulada = 0 ".$authorized." ORDER BY fact_num DESC;"))) { $data = $results; } else { $errors[] = "Ningún pedido encontrado"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 200, 'message' => $errors )); } } public function getCabPed($parameters) { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($results = $database->query("SELECT fec_emis,a.co_cli,b.cli_des,f.zon_des,a.aux02, CASE WHEN a.moneda = 'BS' THEN a.tot_neto ELSE ROUND(a.tot_neto/a.tasa,2) END AS tot_neto, (SELECT SUM(pendiente) FROM TECH_A.dbo.reng_ped e WHERE e.fact_num = a.fact_num AND e.anulado = 0) AS cant_reng FROM TECH_A.dbo.pedidos a LEFT JOIN TECH_A.dbo.clientes b ON b.co_cli = a.co_cli LEFT JOIN TECH_A.dbo.zona f ON f.co_zon = b.co_zon WHERE fact_num = " . $parameters . ";"))) { $data = $results; } else { $errors[] = "Ningún pedido encontrado"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getApprovedOrders() { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($results = $database->query("SELECT a.fact_num, CASE status WHEN 2 THEN 'PROCESADO' WHEN 0 THEN 'PENDIENTE' END AS estatus,a.comentario, CASE WHEN a.moneda = 'BS' THEN a.saldo ELSE ROUND(a.saldo/a.tasa,2) END AS saldo, fec_emis,fec_venc,a.co_cli,b.cli_des,a.co_ven,c.ven_des,ven_des,a.co_tran,des_tran,a.dir_ent,a.forma_pag,e.cond_des, CASE WHEN a.moneda = 'BS' THEN a.tot_bruto ELSE ROUND(a.tot_bruto/a.tasa,2) END AS tot_bruto, CASE WHEN a.moneda = 'BS' THEN a.tot_neto ELSE ROUND(a.tot_neto/a.tasa,2) END AS tot_neto, CASE WHEN a.moneda = 'BS' THEN a.glob_desc ELSE ROUND(a.glob_desc/a.tasa,2) END AS glob_desc, CASE WHEN a.moneda = 'BS' THEN a.iva ELSE ROUND(a.iva/a.tasa,2) END AS iva,impresa,a.aux02,tasa,moneda,anulada,b.co_zon,f.zon_des FROM TECH_A.dbo.pedidos a LEFT JOIN TECH_A.dbo.clientes b ON b.co_cli = a.co_cli LEFT JOIN TECH_A.dbo.vendedor c ON c.co_ven = a.co_ven LEFT JOIN TECH_A.dbo.transpor d ON d.co_tran = a.co_tran LEFT JOIN TECH_A.dbo.condicio e ON e.co_cond = a.forma_pag LEFT JOIN TECH_A.dbo.zona f ON f.co_zon = b.co_zon WHERE a.status = 0 AND a.anulada = 0 AND a.aux02 ='Si';"))) { $data = $results; } else { $errors[] = "Ningún pedido encontrado"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getPedDet($parameters) { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($results = $database->query("SELECT a.fact_num, reng_num, a.co_art, TRIM(art_des) AS art_des, a.co_alma, des_sub, total_art,stotal_art, pendiente,a.uni_venta, des_uni, CASE WHEN b.moneda = 'BS' THEN a.prec_vta ELSE CAST(ROUND(a.prec_vta/b.tasa,2) AS DECIMAL(18,5)) END AS prec_vta, a.prec_vta2, CASE WHEN b.moneda = 'BS' THEN reng_neto ELSE CAST(ROUND(reng_neto/b.tasa,2) AS DECIMAL(18,5)) END AS reng_neto,porc_desc,a.tipo_imp, c.compuesto, c.ref FROM TECH_A.dbo.reng_ped a LEFT JOIN TECH_A.dbo.pedidos b ON b.fact_num = a.fact_num LEFT JOIN TECH_A.dbo.art c ON c.co_art = a.co_art LEFT JOIN TECH_A.dbo.Almacenes d ON d.co_sub = a.co_alma LEFT JOIN TECH_A.dbo.unidades e ON e.co_uni = a.uni_venta WHERE a.fact_num = " . $parameters . ";"))) { $data = $results; } else { $errors[] = "Ningún renglon encontrado"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getOrderDetail($parameters) { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($results = $database->query("SELECT a.fact_num, reng_num, a.co_art, TRIM(art_des) AS art_des, a.co_alma, alma_des, total_art, stotal_art, pendiente, a.uni_venta, des_uni, CASE WHEN b.moneda = 'BS' THEN a.prec_vta ELSE CAST(ROUND(a.prec_vta/b.tasa,2) AS DECIMAL(18,5)) END AS prec_vta, a.prec_vta2, CASE WHEN b.moneda = 'BS' THEN reng_neto ELSE CAST(ROUND(reng_neto/b.tasa,2) AS DECIMAL(18,5)) END AS reng_neto, porc_desc,a.tipo_imp, c.compuesto, c.ref FROM TECH_A.dbo.reng_ped a LEFT JOIN TECH_A.dbo.pedidos b ON b.fact_num = a.fact_num LEFT JOIN TECH_A.dbo.art c ON c.co_art = a.co_art LEFT JOIN TECH_A.dbo.almacen d ON d.co_alma = a.co_alma LEFT JOIN TECH_A.dbo.unidades e ON e.co_uni = a.uni_venta WHERE a.fact_num = " .$parameters. ";"))) { $data = $results; } else { $errors[] = "Ningún renglon encontrado"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function updateOrder($parameters) { $errors = array(); $data = array(); $database = new externalDatabase(); $orderID = $parameters['orderID']; $vendes = trim($parameters['vendes']); $param = $parameters['param']; $sql2 = ""; switch ($param) { case "check": $sql="UPDATE TECH_A.dbo.pedidos SET revisado=CASE WHEN revisado = ' ' THEN '1' ELSE ' ' END,co_us_mo='911',fe_us_mo=GETDATE() WHERE fact_num=".$orderID.";"; break; case "cancel": $sql="UPDATE TECH_A.dbo.pedidos SET anulada=1,co_us_mo='911',fe_us_mo=GETDATE() WHERE fact_num=".$orderID.";"; $sql2="UPDATE TECH_A.dbo.reng_ped SET pendiente = 0 WHERE fact_num = ".$orderID.";"; //$this->overruleOrderPredispatch($orderID,0); break; case "approve": $sql="UPDATE TECH_A.dbo.pedidos SET aux02='Si',co_us_mo='911',fe_us_mo=GETDATE() WHERE fact_num=".$orderID.";"; //$this->overruleOrderPredispatch($orderID,1); break; case "disapproval": $sql="UPDATE TECH_A.dbo.pedidos SET aux02=' ',co_us_mo='911',fe_us_mo=GETDATE() WHERE fact_num=".$orderID.";"; //$this->overruleOrderPredispatch($orderID,0); break; } if (!empty($results = $database->queryUdp($sql))) { if (!empty($sql2)) { $database->queryUdp($sql2); switch ($param) { case "cancel": $reng = $this->getPedDet($orderID); $reng = json_decode($reng, true); $reng = $reng['data']; foreach ($reng as $product) { $codart = $product['co_art']; $total_art = $product['total_art']; $co_alma = $product['co_alma']; $this->updTabComp(0,$total_art,$codart); $this->updTabAlm(0,$total_art,$codart,$co_alma); } $this->sendEditOrderEmail($orderID, "", $vendes, $param, ""); break; } $data = $results; } //else { //$errors[] = "No user found"; //} } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getArt() { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($results = $database->query("SELECT a.co_art,TRIM(art_des) AS art_des,fecha_reg,manj_ser,lote,0,co_lin,co_cat,co_subl,co_color,ref,ref, modelo,comentario,uni_venta,uni_compra,uni_relac,b.stock_act,b.stock_com,b.stock_lle,b.stock_des,suni_venta,suni_compr,suni_relac,b.sstock_act, b.sstock_com,b.sstock_lle,b.sstock_des,prec_om,prec_vta1,fec_prec_v,prec_vta2,fec_prec_2,prec_vta3,fec_prec_3,prec_vta4,fec_prec_4, prec_vta5,fec_prec_5,fec_des_p5,fec_has_p5,ult_cos_un,fec_ult_co,cos_pro_un,fec_cos_pr,cos_un_an,fec_cos_an,ult_cos_om,fec_ult_om, cos_pro_om,fec_pro_om,0,NULL,tipo_cos,fisico,dias_repos,tipo,anulado,tipo_imp,compuesto,0,0,0,0,0 FROM TECH_A.dbo.st_almac b INNER JOIN TECH_A.dbo.art a ON a.co_art = b.co_art WHERE tipo = 'V' AND anulado = 0 AND b.co_alma = '0001' AND (b.stock_act - b.stock_com) > 0 ORDER BY a.co_art;"))) { //,'HEVER' $data = $results; } else { $errors[] = "No se ha encontrado ningún producto"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function insertArt() { $errors = array(); $data = array(); $database = new database("dbprosge"); $database->query("TRUNCATE TABLE mtarticulos;"); $products = $this->getArt(); $products = json_decode($products, true); $products = $products['data']; foreach ($products as $product) { $codart = $product['co_art']; $artdes = $product['art_des']; $fecrec = $product['fecha_reg']; $mseriales = $product['manj_ser']; $mlote = $product['lote']; $codlin = $product['co_lin']; $codcat = $product['co_cat']; $codsubl = $product['co_subl']; $codcolor = $product['co_color']; $codbarra = $product['ref']; $artref = $product['ref']; $modelo = $product['modelo']; $coment = $product['comentario']; $univenta = $product['uni_venta']; $unicompra = $product['uni_compra']; $unirelac = $product['uni_relac']; $stockact = $product['stock_act']; $stockcom = $product['stock_com']; $stocklle = $product['stock_lle']; $stockdes = $product['stock_des']; $suniventa = $product['suni_venta']; $sunicompra = $product['suni_compr']; $sunirelac = $product['suni_relac']; $sstockact = $product['sstock_act']; $sstockcom = $product['sstock_com']; $sstocklle = $product['sstock_lle']; $sstockdes = $product['sstock_des']; $precioom = $product['prec_om']; $precvta1 = $product['prec_vta1']; $fecprecv1 = $product['fec_prec_v']; $precvta2 = $product['prec_vta2']; $fecprecv2 = $product['fec_prec_2']; $precvta3 = $product['prec_vta3']; $fecprecv3 = $product['fec_prec_3']; $precvta4 = $product['prec_vta4']; $fecprecv4 = $product['fec_prec_4']; $precvta5 = $product['prec_vta5']; $fecprecv5 = $product['fec_prec_5']; $fecdesp5 = $product['fec_des_p5']; $fechasp5 = $product['fec_has_p5']; $ultcosun = $product['ult_cos_un']; $fultcosun = $product['fec_ult_co']; $cosproun = $product['cos_pro_un']; $fcosproun = $product['fec_cos_pr']; $cosunan = $product['cos_un_an']; $fcosunan = $product['fec_cos_an']; $ultcosunom = $product['ult_cos_om']; $fultcosunom = $product['fec_ult_om']; $cosprounom = $product['cos_pro_om']; $fcosprounom = $product['fec_pro_om']; $tipocosto = $product['tipo_cos']; $invfisico = $product['fisico']; $diasrepo = $product['dias_repos']; $tipoart = $product['tipo']; $anulado = $product['anulado']; $tipoimp = $product['tipo_imp']; $compuesto = $product['compuesto']; $insert = array( 'codart' => $codart, 'artdes' => $artdes, 'fecrec' => $fecrec, 'mseriales' => $mseriales, 'mlote' => $mlote, 'codlin' => $codlin, 'codcat' => $codcat, 'codart' => $codart, 'codsubl' => $codsubl, 'codcolor' => $codcolor, 'codbarra' => $codbarra, 'artref' => $artref, 'modelo' => $modelo, 'coment' => $coment, 'univenta' => $univenta, 'unicompra' => $unicompra, 'unirelac' => $unirelac, 'stockact' => $stockact, 'stockcom' => $stockcom, 'stocklle' => $stocklle, 'stockdes' => $stockdes, 'suniventa' => $suniventa, 'sunicompra' => $sunicompra, 'sunirelac' => $sunirelac, 'sstockact' => $sstockact, 'sstockcom' => $sstockcom, 'sstocklle' => $sstocklle, 'sstockdes' => $sstockdes, 'precioom' => $precioom, 'precvta1' => $precvta1, 'fecprecv1' => $fecprecv1, 'precvta2' => $precvta2, 'fecprecv2' => $fecprecv2, 'precvta3' => $precvta3, 'fecprecv3' => $fecprecv3, 'precvta4' => $precvta4, 'fecprecv4' => $fecprecv4, 'precvta5' => $precvta5, 'fecprecv5' => $fecprecv5, 'fecdesp5' => $fecdesp5, 'fechasp5' => $fechasp5, 'ultcosun' => $ultcosun, 'fultcosun' => $fultcosun, 'cosproun' => $cosproun, 'fcosproun' => $fcosproun, 'cosunan' => $cosunan, 'fcosunan' => $fcosunan, 'ultcosunom' => $ultcosunom, 'fultcosunom' => $fultcosunom, 'cosprounom' => $cosprounom, 'fcosprounom' => $fcosprounom, 'tipocosto' => $tipocosto, 'invfisico' => $invfisico, 'diasrepo' => $diasrepo, 'tipoart' => $tipoart, 'anulado' => $anulado, 'tipoimp' => $tipoimp, 'compuesto' => $compuesto ); if (!empty($result = $database->insert('mtarticulos', $insert, array('%s', '%s', '%s', '%s', '%s','%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s','%s', '%s', '%s', '%s', '%s','%s', '%s', '%s', '%s', '%s','%s', '%s', '%s', '%s', '%s','%s', '%s', '%s', '%s', '%s','%s', '%s', '%s', '%s', '%s','%s', '%s', '%s','%s', '%s', '%s', '%s', '%s','%s', '%s', '%s','%s', '%s', '%s', '%s', '%s','%s', '%s')))) { $data[] = $insert; } else { $errors[] = $insert; } } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Se han insertado todos los productos exitosamente", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => "No se han podido insertar los productos", 'data' => $errors )); } } public function getAllProducts() { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($results = $database->query("SELECT a.co_art AS codart,TRIM(art_des) AS artdes,prec_vta1 AS precvta1,prec_vta2 AS precvta2, prec_vta3 AS precvta3,prec_vta4 AS precvta4,prec_vta5 AS precvta5,TRIM(ref) AS codbarra FROM TECH_A.dbo.art a WHERE tipo = 'V' AND anulado = 0 AND EXISTS(SELECT co_art FROM TECH_A.dbo.st_almac WHERE st_almac.co_art = a.co_art AND co_alma IN ('0001','SPF','MTMAX','MSDA','TEMP')) ORDER BY a.co_art;"))) { //,'HEVER' $data = $results; } else { $errors[] = "No se ha encontrado ningún producto"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getProductStock($productID) //obsoleto { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($results = $database->query("SELECT co_alma,stock_act,stock_com,(stock_act - stock_com) AS stocktotal FROM TECH_A.dbo.st_almac WHERE co_art = '$productID' AND (stock_act - stock_com) > 0 AND co_alma IN ('0001','SPF','MTMAX','MSDA','TEMP');"))) { //,'HEVER' $data = $results; } else { $errors[] = "Este producto no tiene stock en ningún almacén"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getAllProductsStock() { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($results = $database->query("SELECT a.co_art,co_alma,a.stock_act,a.stock_com,(a.stock_act - a.stock_com) AS stocktotal FROM TECH_A.dbo.st_almac a LEFT JOIN TECH_A.dbo.art b ON b.co_art = a.co_art WHERE tipo = 'V' AND anulado = 0 AND (a.stock_act - a.stock_com) > 0 AND a.co_alma IN ('0001','SPF','MTMAX','MSDA','TEMP') ORDER BY a.co_art,a.co_alma;"))) { //,'HEVER' $data = $results; } else { $errors[] = "Productos no tiene stock en ningún almacén"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getSellersProducts($coven) { $errors = array(); $data = array(); $database = new database("dbprosge"); $anio = date("Y"); $mes = date("m"); $sql =";"; if(!empty($coven)){ $sql = " AND metas.codven = $coven;"; $res = $this->getGoalsSeller($coven); $goals = json_decode($res, true); $goals = $goals['data']; $database->queryUdp("UPDATE metas SET utilizado = 0 WHERE anio = EXTRACT(YEAR FROM NOW()) AND mes = EXTRACT(MONTH FROM NOW()) AND codven = '$coven';"); if(!empty($res)) { foreach ($goals as $goal) { $totalart = $goal['totalart']; $eanio = $goal['eanio']; $emes = $goal['emes']; $co_art = $goal['co_art']; $database->queryUdp("UPDATE metas SET utilizado = $totalart WHERE anio = '$eanio' AND mes = '$emes' AND codven = '$coven' AND codart = '$co_art';"); } } else { $errors[] = "No se ha encontrado ningún producto en pedido"; } } if (!empty($results = $database->query("SELECT metas.codven, mtarticulos.codart, mtarticulos.artdes, mtarticulos.codcat, (metas.asignado - metas.utilizado) stocktotal, mtarticulos.precvta1, mtarticulos.precvta2, mtarticulos.precvta3, mtarticulos.precvta4, mtarticulos.precvta5, clcategoria.catdes FROM `mtarticulos` INNER JOIN `metas` ON metas.codart = mtarticulos.codart LEFT JOIN `clcategoria` ON mtarticulos.codcat = clcategoria.codcat WHERE metas.anio = $anio AND metas.mes = $mes AND (metas.asignado - metas.utilizado) > 0 $sql"))) { $data = $results; } else { $errors[] = "No se ha encontrado ningún producto"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getClient() { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($results = $database->query("SELECT a.co_cli, RTRIM(cli_des) AS cli_des, direc1, telefonos, comentario, RTRIM(respons) AS respons, fecha_reg, fec_ult_ve, net_ult_ve, mont_cre, plaz_pag, desc_ppago, co_zon, co_seg, co_ven, desc_glob, dir_ent2, RTRIM(rif) AS rif, tipo, 2 AS tipocon, RTRIM(email) AS email, RTRIM(ciudad) AS ciudad, CASE inactivo WHEN 0 THEN 1 ELSE 0 END AS activo, 1 AS autorizado, CASE WHEN campo8 <> '' THEN CAST(campo8 AS INTEGER) ELSE 0 END AS credito, ISNULL((SELECT CAST(SUM(CASE WHEN c.tipo_doc IN ('N/DB','GIRO','CHEQ','FACT','AJPA','AJPM') THEN c.saldo / tasa ELSE (c.saldo * -1) / tasa END) AS DECIMAL(18,2)) FROM TECH_A.dbo.docum_cc c WHERE c.co_cli = a.co_cli AND c.anulado = 0 AND c.saldo > 0 GROUP BY c.co_cli ),0) AS saldo FROM TECH_A.dbo.clientes a WHERE inactivo = 0;"))) { $data = $results; } else { $errors[] = "No clientes encontrados"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getCodClient() { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($results = $database->query("SELECT CASE WHEN MAX(co_cli) >= 1000 THEN '0'+CAST(MAX(co_cli)+1 AS VARCHAR(10)) ELSE '00'+CAST(MAX(co_cli)+1 AS VARCHAR(10)) END AS co_cli FROM TECH_A.dbo.clientes WHERE co_cli NOT LIKE 'GEN%';"))) { $data = $results; } else { $errors[] = "No clientes encontrados"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function createClient($parameters) { $errors = array(); $database = new externalDatabase(); $num = false; $codcli = $parameters['codcli']; $clides = $parameters['clides']; $dirfiscal = $parameters['dirfiscal']; $telefonos = $parameters['telefonos']; $comentario = $parameters['comentario']; $contacto = $parameters['contacto']; $fecreg = $parameters['fecreg']; $fecultvta = $parameters['fecultvta']; $netoultvta = $parameters['netoultvta']; $montocred = $parameters['montocred']; $diascred = $parameters['diascred']; $descppago = $parameters['descppago']; $codzon = $parameters['codzon']; $codseg = $parameters['codseg']; $codven = $parameters['codven']; $descglob = $parameters['descglob']; $direntrega = $parameters['direntrega']; $numrif = $parameters['numrif']; $tipocli = $parameters['tipocli']; $tipocon = $parameters['tipocon']; $email = $parameters['email']; $ciudad = $parameters['ciudad']; $activo = $parameters['activo']; $autorizado = $parameters['autorizado']; $num = $this->getCodClient(); $num = json_decode($num, true); $num = $num['data']; $num = $num[0]['co_cli']; /*if (empty($errors)) { if (!empty($result = $database->insert('TECH_A.dbo.clientes', array( 'co_cli' => $num, 'cli_des' => $clides, 'direc1' => $dirfiscal, 'telefonos' => $telefonos, 'comentario' => $comentario, 'respons' => $contacto, 'co_zon' => $codzon, 'co_seg' => $codseg, 'co_ven' => $codven, 'dir_ent2' => $direntrega, 'rif' => $numrif, 'tipo' => $tipocli, 'contribu' => $tipocon, 'email' => $email, 'ciudad' => $ciudad, 'co_ingr' => '0011', 'co_us_in' => '911', 'co_sucu' => '0001', 'co_pais' => 'VE', 'fecha_reg' => $fecreg, 'fec_ult_ve' => '01.01.1999', 'fe_us_in' => $fecreg, 'fe_us_mo' => '01.01.1999', 'fe_us_el' => '01.01.1999', 'tipo_per' => '1', ), array('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')))) { return responses::create(array( 'status' => 200, 'message' => 'Cliente creado exitosamente', 'data' => array( array( "insertedID" => $result ) ) )); } else { return responses::create(array( 'status' => 400, 'message' => 'No se ha podido crear el cliente' )); } } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } */ if (!empty($results = $database->queryUdp("INSERT INTO TECH_A.dbo.clientes (co_cli,cli_des,direc1,telefonos,comentario,respons, co_zon,co_seg,co_ven,dir_ent2,rif,tipo,contribu,email,ciudad,co_ingr,co_us_in,co_sucu,co_pais,fecha_reg,fec_ult_ve,fe_us_in, fe_us_mo,fe_us_el,tipo_per) VALUES ($num,'" .$clides. "','" .$dirfiscal. "','" .$telefonos. "','" .$comentario. "','" .$contacto. "', '" .$codzon. "','" .$codseg. "','" .$codven. "','" .$direntrega. "','" .$numrif. "','" .$tipocli. "',$tipocon,'" .$email. "', '" .$ciudad. "','0011','911','0001','VE',CONVERT(nvarchar, $fecreg, 120),CONVERT(nvarchar, $fecultvta, 120),CONVERT(nvarchar, $fecreg, 120), CONVERT(nvarchar, $fecultvta, 120), CONVERT(nvarchar, $fecultvta, 120),'1');"))) { $data = $results; return responses::create(array( 'status' => 200, 'message' => 'Cliente creado exitosamente', 'data' => array( array( "insertedID" => $num ) ) )); } else { return responses::create(array( 'status' => 400, 'message' => 'No se ha podido crear el cliente' )); } } public function getGoals($parameters) { $errors = array(); $data = array(); $database = new database("dbprosge"); $anio = $parameters['anio']; $mes = $parameters['mes']; if (!empty($result = $database->select('SELECT metas.anio, metas.mes, metas.codven, metas.codart, metas.asignado, metas.utilizado, (metas.asignado - metas.utilizado) AS stock, mtprofitart.artdes, clvendedores.vendes FROM `metas` LEFT JOIN mtprofitart ON metas.codart = mtprofitart.codart LEFT JOIN clvendedores ON metas.codven = clvendedores.codven WHERE metas.anio = ? AND metas.mes = ?', array($anio, $mes), array('%s', '%s')))) { $data = $result; } else { $errors[] = "No se ha encontrado ninguna meta"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Se han encontrado las metas exitosamente", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getGoal($parameters) { $errors = array(); $data = array(); $database = new database("dbprosge"); $anio = $parameters['anio']; $mes = $parameters['mes']; $codven = $parameters['codven']; $codart = $parameters['codart']; if (!empty($result = $database->select('SELECT asignado, utilizado FROM metas WHERE anio = ? AND mes = ? AND codven = ? AND codart = ?', array($anio, $mes, $codven, $codart), array('%s', '%s', '%s', '%s')))) { $data = $result; } else { $errors[] = "Meta no encontrada"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Meta encontrada", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function createGoal($parameters) { $errors = array(); $database = new database("dbprosge"); $anio = $parameters['anio']; $mes = $parameters['mes']; $codven = $parameters['codven']; $codart = $parameters['codart']; $asignado = $parameters['asignado']; $utilizado = $parameters['utilizado']; if (empty($errors)) { if (!empty($result = $database->insert('metas', array( 'anio' => $anio, 'mes' => $mes, 'codven' => $codven, 'codart' => $codart, 'asignado' => $asignado, 'utilizado' => $utilizado ), array('%s', '%s', '%s', '%s', '%s', '%s')))) { return responses::create(array( 'status' => 200, 'message' => 'Meta creada exitosamente', 'data' => array( array( "insertedID" => $result ) ) )); } else { return responses::create(array( 'status' => 400, 'message' => 'No se ha podido crear la meta' )); } } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function updateGoal($parameters) { $errors = array(); $database = new database("dbprosge"); $anio = $parameters['anio']; $mes = $parameters['mes']; $codven = $parameters['codven']; $codart = $parameters['codart']; $asignado = $parameters['asignado']; if (!empty($results = $database->queryUdp("UPDATE metas SET asignado=" . $asignado . " WHERE anio=\"" . $anio . "\" AND mes=\"" . $mes . "\" AND codven=\"" . $codven . "\" AND codart=\"" . $codart . "\";"))) { $data = $results; } else { $errors[] = "No se ha podido actualizar la meta"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Meta actualizada exitosamente", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function updateGoalUsedQuantity($parameters) { $errors = array(); $database = new database("dbprosge"); $goal = false; $anio = $parameters['anio']; $mes = $parameters['mes']; $codven = $parameters['codven']; $codart = $parameters['codart']; $utilizado = $parameters['utilizado']; $goal = $this->getGoal(array( 'anio' => $anio, 'mes' => $mes, 'codven' => $codven, 'codart' => $codart )); $goal = json_decode($goal, true); $goal = $goal['data']; if ($goal[0]['utilizado'] > 0) { $utilizado += $goal[0]['utilizado']; } if (!empty($results = $database->queryUdp("UPDATE metas SET utilizado = $utilizado WHERE anio = '$anio' AND mes = '$mes' AND codven = '$codven' AND codart = '$codart'"))) { $data = $results; } else { $errors[] = "No se ha podido actualizar la meta"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Meta actualizada exitosamente", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function updGoalUsed($parameters) { $errors = array(); $database = new database("dbprosge"); $codven = $parameters['codven']; $codart = $parameters['codart']; $utilizado = $parameters['used']; $fec_emis = $parameters['fec_emis']; $fec_emis = strtotime($fec_emis); $anio = date("Y", $fec_emis); $mes = date("m", $fec_emis); if (!empty($results = $database->queryUdp("UPDATE metas SET utilizado = (utilizado - $utilizado) WHERE anio = '$anio' AND mes = '$mes' AND codven = '$codven' AND codart = '$codart'"))) { $data = $results; } else { $errors[] = "No se ha podido actualizar la meta"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Meta actualizada exitosamente", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getGoalsProducts($parameters) { $errors = array(); $data = array(); $database = new database("dbprosge"); $anio = $parameters['anio']; $mes = $parameters['mes']; $database->query("DELETE FROM metas_articulos WHERE anio='$anio' AND mes='$mes';"); $mett = $this->insertGoalsProducts(array( 'anio' => $anio, 'mes' => $mes )); if (!empty($result = $database->select('SELECT mtprofitart.codart,mtprofitart.artdes,mtprofitart.codlin,mtprofitart.codcat, mtprofitart.codsubl,mtprofitart.codcolor,mtprofitart.codbarra,mtprofitart.modelo,mtprofitart.coment,mtprofitart.univenta, metas_articulos.stockact,metas_articulos.stockcom,(metas_articulos.stockact - metas_articulos.stockcom) AS stocktotal, metas_articulos.stockact,metas_articulos.stockcom, CASE WHEN ((metas_articulos.stockact - metas_articulos.stockcom) - ((SELECT SUM(metas.asignado) FROM metas WHERE metas_articulos.anio = ? AND metas_articulos.mes = ? AND metas.codart = metas_articulos.codart) - (SELECT SUM(metas.utilizado) FROM metas WHERE metas_articulos.anio = ? AND metas_articulos.mes = ? AND metas.codart = metas_articulos.codart))) IS NOT NULL THEN ((metas_articulos.stockact - metas_articulos.stockcom) - ((SELECT SUM(metas.asignado) FROM metas WHERE metas_articulos.anio = ? AND metas_articulos.mes = ? AND metas.codart = metas_articulos.codart) - (SELECT SUM(metas.utilizado) FROM metas WHERE metas_articulos.anio = ? AND metas_articulos.mes = ? AND metas.codart = metas_articulos.codart))) ELSE (metas_articulos.stockact - metas_articulos.stockcom) END AS stockfree, mtprofitart.suniventa,mtprofitart.sstockact,mtprofitart.sstockcom,mtprofitart.precvta1,mtprofitart.tipoart, CASE WHEN (SELECT SUM(metas.asignado) FROM metas WHERE metas_articulos.anio = ? AND metas_articulos.mes = ? AND metas.codart = metas_articulos.codart) > 0 THEN (SELECT SUM(metas.asignado) FROM metas WHERE metas_articulos.anio = ? AND metas_articulos.mes = ? AND metas.codart = metas_articulos.codart) ELSE 0 END AS stockgrant, CASE WHEN (SELECT SUM(metas.utilizado) FROM metas WHERE metas_articulos.anio = ? AND metas_articulos.mes = ? AND metas.codart = metas_articulos.codart) > 0 THEN (SELECT SUM(metas.utilizado) FROM metas WHERE metas_articulos.anio = ? AND metas_articulos.mes = ? AND metas.codart = metas_articulos.codart) ELSE 0 END AS stockused FROM metas_articulos LEFT JOIN mtprofitart ON metas_articulos.codart = mtprofitart.codart LEFT JOIN metas ON metas_articulos.codart = metas.codart AND metas.anio = ? AND metas.mes = ? WHERE metas_articulos.anio = ? AND metas_articulos.mes = ? AND (metas_articulos.stockact - metas_articulos.stockcom) > 0 GROUP BY metas_articulos.codart', array($anio, $mes, $anio, $mes, $anio, $mes, $anio, $mes, $anio, $mes, $anio, $mes, $anio, $mes, $anio, $mes, $anio, $mes, $anio, $mes), array('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')))) { /*if (!empty($result = $database->select('SELECT mtarticulos.codart, mtarticulos.artdes, mtarticulos.codlin, mtarticulos.codcat, mtarticulos.codsubl, mtarticulos.codcolor, mtarticulos.codbarra, mtarticulos.modelo, mtarticulos.coment, mtarticulos.univenta, metas_articulos.stockact, metas_articulos.stockcom, (metas_articulos.stockact - metas_articulos.stockcom) AS stocktotal, (metas_articulos.stockact - metas_articulos.stockcom) AS stockdisponible, mtarticulos.suniventa, mtarticulos.sstockact, mtarticulos.sstockcom, mtarticulos.precvta1, mtarticulos.tipoart FROM metas_articulos LEFT JOIN mtarticulos ON metas_articulos.codart = mtarticulos.codart LEFT JOIN metas ON metas_articulos.codart = metas.codart AND metas.anio = ? AND metas.mes = ? WHERE mtarticulos.precvta1 <> 0 AND (metas_articulos.stockact - metas_articulos.stockcom) <> 0 AND metas_articulos.anio = ? AND metas_articulos.mes = ? AND (metas_articulos.stockact - metas_articulos.stockcom) > 0 GROUP BY metas_articulos.codart', array($anio, $mes, $anio, $mes), array('%s', '%s', '%s', '%s')))) { */ /*if (!empty($result = $database->select("SELECT metas_articulos.codart,mtarticulos.artdes,mtarticulos.codlin, mtarticulos.codcat, mtarticulos.codsubl, mtarticulos.codcolor, mtarticulos.codbarra, mtarticulos.modelo, mtarticulos.coment, mtarticulos.univenta, metas_articulos.stockact,metas_articulos.stockcom,mtarticulos.suniventa,mtarticulos.sstockact, mtarticulos.sstockcom, mtarticulos.precvta1,mtarticulos.tipoart,(metas_articulos.stockact - metas_articulos.stockcom) AS stocktotal, IFNULL((SELECT SUM(metas2.asignado) FROM metas AS metas2 WHERE metas2.anio=? AND metas2.mes =? AND metas2.codart=metas_articulos.codart AND metas2.codven <> '00001'),0) AS stockasignado, IFNULL(((metas_articulos.stockact - metas_articulos.stockcom) - (SELECT SUM(metas2.asignado) FROM metas AS metas2 WHERE metas2.anio=? AND metas2.mes =? AND metas2.codart=metas_articulos.codart AND metas2.codven <> '00001')),0) AS stockdisponible FROM metas_articulos LEFT JOIN mtarticulos ON metas_articulos.codart = mtarticulos.codart WHERE metas_articulos.anio=? AND metas_articulos.mes =?", array($anio, $mes, $anio, $mes, $anio, $mes), array('%s', '%s', '%s', '%s', '%s', '%s')))) {*/ $data = $result; } else { $errors[] = "No se ha encontrado ningún producto"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Productos encontrados", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function insertGoalsProducts($parameters) { $errors = array(); $data = array(); $database = new database("dbprosge"); $anio = $parameters['anio']; $mes = $parameters['mes']; $products = $this->getArt(); $products = json_decode($products, true); $products = $products['data']; foreach ($products as $product) { $codart = $product['co_art']; $stockact = $product['stock_act']; $stockcom = $product['stock_com']; $insert = array( 'anio' => $anio, 'mes' => $mes, 'codart' => $codart, 'stockact' => $stockact, 'stockcom' => $stockcom ); if (!empty($result = $database->insert('metas_articulos', $insert, array('%s', '%s', '%s', '%s', '%s')))) { $data[] = $insert; } else { $errors[] = $insert; } } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Se han insertado todos los productos exitosamente", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => "No se han podido insertar los productos", 'data' => $errors )); } } public function getParEmp() { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($results = $database->query("SELECT ped_num FROM TECH_A.dbo.par_emp"))) { $data = $results; } else { $errors[] = "Ningún correlativo encontrado"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getTabEnc() { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($results = $database->query("SELECT TOP 1 tasa FROM TECH_A.dbo.tab_enc ORDER BY fecha DESC"))) { $data = $results; } else { $errors[] = "Ninguna tasa encontrada"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getTabTasaD() { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($results = $database->query("SELECT TOP 1 tasa_v FROM TECH_A.dbo.tasas ORDER BY fecha DESC"))) { $data = $results; } else { $errors[] = "Ninguna tasa encontrada"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function updTabEnc($num) { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($results = $database->queryUdp("UPDATE TECH_A.dbo.par_emp SET ped_num = '$num'"))) { $data = $results; } else { $errors[] = "Correlativo no Incrementado"; } } public function updTabPedCab($pednum,$tot_bruto,$totiva,$glob_desc,$tot_neto) { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($results = $database->queryUdp("UPDATE TECH_A.dbo.pedidos SET saldo = '$tot_neto', tot_bruto = '$tot_bruto', tot_neto = '$tot_neto', glob_desc = '$glob_desc', iva = '$totiva' WHERE fact_num = '$pednum'"))) { $data = $results; } else { $errors[] = "Totales Cabecera no Actualizados"; } } public function updTabComp($udp,$totalart,$codart) { $errors = array(); $data = array(); $database = new externalDatabase(); $sql = ""; if ($udp === 1) { $sql = "UPDATE TECH_A.dbo.art SET stock_com = stock_com + $totalart WHERE co_art = '".$codart."';"; } else { $sql = "UPDATE TECH_A.dbo.art SET stock_com = stock_com - $totalart WHERE co_art = '".$codart."';"; } if (!empty($results = $database->queryUdp($sql))) { $data = $results; } else { $errors[] = "Cantidad Comprometido no Actualizado"; } } public function updDirEntrega($codcli,$direntrega) { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($results = $database->queryUdp("UPDATE TECH_A.dbo.clientes SET dir_ent2 = '".$direntrega."' WHERE co_cli='".$codcli."';"))) { $data = $results; } else { $errors[] = "Dirección de entrega no actualizada"; } } public function updTabAlm($udp,$totalart,$codart,$codalma) { $errors = array(); $data = array(); $database = new externalDatabase(); $sql = ""; if ($udp === 1) { $sql = "UPDATE TECH_A.dbo.st_almac SET stock_com=stock_com + $totalart WHERE co_art='".$codart."' AND co_alma='".$codalma."';"; } else { $sql = "UPDATE TECH_A.dbo.st_almac SET stock_com = stock_com - $totalart WHERE co_art = '".$codart."' AND co_alma = '".$codalma."';"; } if (!empty($results = $database->queryUdp($sql))) { $data = $results; } else { $errors[] = "Cantidad almacén no actualizado"; } } public function createOrder($parameters) { $errors = array(); $database = new externalDatabase(); $num = false; $tabenc = false; $estatus = $parameters['estatus']; $descrip = $parameters['descrip']; $comentario = $parameters['comentario']; $saldo = $parameters['saldo']; $fecemis = $parameters['fecemis']; $fecvenc = $parameters['fecvenc']; $codcli = $parameters['codcli']; $codven = $parameters['codven']; $codtran = $parameters['codtran']; $direntrega = $parameters['direntrega']; $codcond = $parameters['codcond']; $totbruto = $parameters['totbruto']; $totneto = $parameters['totneto']; $porcdesc = $parameters['porcdesc']; $totdesc = $parameters['totdesc']; $porcreca = $parameters['porcreca']; $totreca = $parameters['totreca']; $totflete = $parameters['totflete']; $totiva = $parameters['totiva']; $anulado = $parameters['anulado']; $impreso = $parameters['impreso']; $autorizado = $parameters['autorizado']; //$tasa = $parameters['tasa']; $moneda = $parameters['moneda']; $nombre = $parameters['nombre']; $rif = $parameters['rif']; $telefono = $parameters['telefono']; $uno = 1; $vacio = ""; $usuario = "911"; $cero_uno_S = "0001"; $revisado = " "; $vCond = $this->getCondCons($codcond); $vCond = json_decode($vCond, true); $vCond = $vCond['data']; $vCond = $vCond[0]['dias_cred']; $fecvenc = date("Ymd",strtotime($fecemis."+ $vCond days")); if ($codven == "00001") { $revisado = 1; } if (empty($errors)) { $num = $this->getParEmp(); $num = json_decode($num, true); $num = $num['data']; $num = $num[0]['ped_num']; $num = $num+1; $numpad = str_pad($num, 8, "0", STR_PAD_LEFT); $tabenc = $this->getTabEnc(); $tabenc = json_decode($tabenc, true); $tabenc = $tabenc['data']; $tab = $tabenc[0]['tasa']; $tasaD = $this->getTabTasaD(); $tasaD = json_decode($tasaD, true); $tasaD = $tasaD['data']; $tasa_v = $tasaD[0]['tasa_v']; $totbruto = ($totbruto * $tasa_v); //cambio monto bruto a bolivar //$totdesc = (($totbruto * $porcdesc)/100); //total descuento //$totbrutoD = ($totbruto - $totdesc); //total bruto menos total descuento //$totreca = (($totbruto * $porcreca)/100); //total recargo //$totbrutoN = ($totbrutoD + $totreca); //total bruto - descuento + recargo //$totiva = ($totbrutoN * $tab)/100; //$totneto = ($totbrutoN + $totiva); $totiva = ($totiva * $tasa_v); $totneto = ($totneto * $tasa_v); $saldo = $totneto; //$this->updTabEnc($num); /*if (!empty($result = $database->insert('TECH_A.dbo.pedidos', array( 'fact_num' => $num, 'contrib' => $uno, 'nombre' => $nombre, 'rif' => $rif, 'descrip' => $descrip, 'status' => $estatus, 'comentario' => $comentario, 'saldo' => $saldo, 'fec_emis' => $fecemis, 'fec_venc' => $fecvenc, 'co_cli' => $codcli, 'co_ven' => $codven, 'co_tran' => $codtran, 'revisado' => $revisado, 'dir_ent' => $direntrega, 'forma_pag' => $codcond, 'tot_bruto' => $totbruto, 'tot_neto' => $totneto, 'glob_desc' => $totdesc, 'tot_reca' => $totreca, 'porc_gdesc' => $porcdesc, 'porc_reca' => $porcreca, 'iva' => $totiva, 'tasa' => $tasa_v, 'moneda' => $moneda, 'tasag' => $tab, 'co_us_in' => $usuario, 'co_sucu' => $cero_uno_S, 'telefono' => $telefono), array('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s', '%s','%s','%s','%s','%s','%s','%s')))) { $this->updTabEnc($num); $this->updDirEntrega($codcli,$direntrega); return responses::create(array( 'status' => 200, 'message' => 'Pedido creado exitosamente', 'data' => array( array( "insertedID" => $num ) ) )); } else { return responses::create(array( 'status' => 400, 'message' => 'No se ha podido crear el pedido' )); } */ if (!empty($results = $database->queryUdp("INSERT INTO TECH_A.dbo.pedidos (fact_num,contrib,nombre,rif,descrip,status,comentario, saldo,fec_emis,fec_venc,co_cli,co_ven,co_tran,revisado,dir_ent,forma_pag,tot_bruto,tot_neto,glob_desc,tot_reca,porc_gdesc, porc_reca,iva,tasa,moneda,tasag, co_us_in, co_sucu, telefono,serialp) VALUES ($num, 1, '" .$nombre. "', '" .$rif. "', '" .$descrip. "', '" .$estatus. "', '" .$comentario. "', $saldo, CONVERT(nvarchar, $fecemis, 120), CONVERT(nvarchar, $fecvenc, 120), '" .$codcli. "', '" .$codven. "', '" .$codtran. "', '" .$revisado. "', '" .$direntrega. "', '" .$codcond. "', $totbruto, $totneto, $totdesc, $totreca, '" .$porcdesc. "', '" .$porcreca. "', $totiva, $tasa_v, '" .$moneda. "', $tab, '911', '0001', '" .$telefono. "', '" .$numpad. "');"))) { $data = $results; $this->updTabEnc($num); $this->updDirEntrega($codcli,$direntrega); $this->updSerialp($num); return responses::create(array( 'status' => 200, 'message' => 'Pedido creado exitosamente', 'data' => array( array( "insertedID" => $num ) ) )); } else { return responses::create(array( 'status' => 400, 'message' => 'No se ha podido crear el pedido' )); } } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function updSerialp($num) { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($results = $database->queryUdp("UPDATE TECH_A.dbo.pedidos SET serialp = RIGHT(REPLICATE('0', 8) + CAST(fact_num AS VARCHAR), 8) WHERE fact_num = $num;"))) { $data = $results; } else { $errors[] = "Correlativo no Incrementado"; } } public function getTabArt($art) { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($results = $database->query("SELECT tipo_imp,cos_pro_un,ult_cos_un,ult_cos_om,cos_pro_om FROM TECH_A.dbo.art WHERE co_art='$art'"))) { $data = $results; } else { $errors[] = "Ningún costo encontrado"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getTabPedCab($ped) { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($results = $database->query("SELECT tot_bruto,tot_neto,tot_reca,glob_desc,porc_gdesc FROM TECH_A.dbo.pedidos WHERE fact_num =$ped"))) { $data = $results; } else { $errors[] = "Ningún costo encontrado"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function createOrderDetail($parameters) { $errors = array(); $database = new externalDatabase(); $pednum = $parameters['pednum']; $rennum = $parameters['rennum']; $codart = $parameters['codart']; $codalm = $parameters['codalm']; $totalart = $parameters['totalart']; $stotalart = $parameters['stotalart']; $cantpen = $parameters['cantpen']; $univenta = $parameters['univenta']; $precvta = $parameters['precvta']; $precvta2 = $parameters['precvta2']; $totbruto = $parameters['totbruto']; $totneto = $parameters['totneto']; $porcdesc = $parameters['porcdesc']; $totdesc = $parameters['totdesc']; $totiva = $parameters['totiva']; $tipoimp = $parameters['tipoimp']; $fechlot = "01.01.1999"; $costo = $this->getTabArt($codart); $costo = json_decode($costo, true); $costo = $costo['data']; $cos_pro_un = $costo[0]['cos_pro_un']; $ult_cos_un = $costo[0]['ult_cos_un']; $ult_cos_om = $costo[0]['ult_cos_om']; $cos_pro_om = $costo[0]['cos_pro_om']; $tipo_imp = $costo[0]['tipo_imp']; $tasaD = $this->getTabTasaD(); $tasaD = json_decode($tasaD, true); $tasaD = $tasaD['data']; $tasa_v = $tasaD[0]['tasa_v']; $pre_vta1 = $precvta * $tasa_v; $totbruto = $totbruto * $tasa_v; $totneto = $totneto * $tasa_v; $totdesc = $totdesc * $tasa_v; $tot_reng = $pre_vta1 * $totalart; /*if($porcdesc != 0){ $desc_reng = $tot_reng * $porcdesc/100; $tot_reng = $tot_reng - $desc_reng; }*/ if($tipo_imp != 1){ $cab = $this->getTabPedCab($pednum); $cab = json_decode($cab, true); $cab = $cab['data']; $tabenc = $this->getTabEnc(); $tabenc = json_decode($tabenc, true); $tabenc = $tabenc['data']; $tab = $tabenc[0]['tasa']; $tot_bruto = $cab[0]['tot_bruto']; $tot_neto = $cab[0]['tot_neto']; $glob_desc = $cab[0]['glob_desc']; $tot_reca = $cab[0]['tot_reca']; $porc_gdesc = $cab[0]['porc_gdesc']; $tot_brutoI = $tot_bruto-$totneto; $totiva = $tot_brutoI * $tab/100; $glob_desc = $tot_bruto * $porc_gdesc/100; $tot_neto = $tot_bruto + $totiva - $glob_desc + $tot_reca; $this->updTabPedCab($pednum,$tot_bruto,$totiva,$glob_desc,$tot_neto); } if (empty($errors)) { if (!empty($result = $database->insert('TECH_A.dbo.reng_ped', array( 'fact_num' => $pednum, 'reng_num' => $rennum, 'co_art' => $codart, 'co_alma' => $codalm, 'total_art' => $totalart, 'pendiente' => $cantpen, 'uni_venta' => $univenta, 'prec_vta' => $pre_vta1, 'prec_vta2' => $precvta2, 'reng_neto' => $totneto, 'porc_desc' => $porcdesc, 'cos_pro_un' => $cos_pro_un, 'ult_cos_un' => $ult_cos_un, 'ult_cos_om' => $ult_cos_om, 'cos_pro_om' => $cos_pro_om, 'tipo_imp' => $tipo_imp, 'fec_lote' => $fechlot), array('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')))) { $this->updTabComp(1,$totalart,$codart); $this->updTabAlm(1,$totalart,$codart,$codalm); return responses::create(array( 'status' => 200, 'message' => 'Detalle de pedido creado exitosamente' )); } else { return responses::create(array( 'status' => 400, 'message' => 'No se ha podido crear el detalle de pedido' )); } } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getSellers() { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($result = $database->query("SELECT * FROM TECH_A.dbo.vendedor WHERE tipo = 'A' AND condic = 0 AND trasnfe = '1';"))) { $data = $result; } else { $errors[] = "Ningún vendedor encontrado"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getZones() { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($result = $database->query('SELECT * FROM TECH_A.dbo.zona;'))) { $data = $result; } else { $errors[] = "Ninguna zona encontrada"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getStates() { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($result = $database->query('SELECT co_zon, zon_des FROM TECH_A.dbo.zona ORDER BY co_zon;'))) { $data = $result; } else { $errors[] = "Ninguna zona encontrada"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getClientTypes() { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($result = $database->query('SELECT tip_cli,des_tipo FROM TECH_A.dbo.tipo_cli ORDER BY tip_cli;'))) { $data = $result; } else { $errors[] = "Ningún tipo de cliente encontrado"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getTaxpayerTypes() { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($result = $database->query('SELECT * FROM TECH_A.dbo.tab_islr'))) { $data = $result; } else { $errors[] = "Ningún tipo de contribuyente encontrado"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getConditions() { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($result = $database->query('SELECT co_cond,cond_des,dias_cred FROM TECH_A.dbo.condicio ORDER BY co_cond'))) { $data = $result; } else { $errors[] = "Ninguna condicion encontrada"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getCondCons($cond) { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($result = $database->query("SELECT dias_cred FROM TECH_A.dbo.condicio WHERE co_cond = $cond"))) { $data = $result; } else { $errors[] = "Ninguna condicion encontrada"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function setPricesToDollars() { $database = new externalDatabase(); $orders = $this->getPed(false); $orders = json_decode($orders, true); $orders = $orders['data']; foreach ($orders as $order) { $pednum = $order['pednum']; $tasa = $order['tasa']; if ($tasa > 0) { $totbruto = $order['totbruto']; $totneto = $order['totneto']; $totdesc = $order['totdesc']; $totiva = $order['totiva']; if ($totbruto > 0) { $totbruto = $totbruto / $tasa; } if ($totneto > 0) { $totneto = $totneto / $tasa; } if ($totdesc > 0) { $totdesc = $totdesc / $tasa; } if ($totiva > 0) { $totiva = $totiva / $tasa; } $database->queryUdp("UPDATE cbpedido SET totbruto=" . $totbruto . ", totneto=" . $totneto . ", totdesc=" . $totdesc . ", totiva=" . $totiva . " WHERE pednum= " . $pednum . ";"); $orderDetails = $this->getPedDet($pednum); $orderDetails = json_decode($orderDetails, true); $orderDetails = $orderDetails['data']; foreach ($orderDetails as $detail) { $codart = trim($detail['codart']); $precvta = $detail['precvta']; $totbruto = $detail['totbruto']; $totneto = $detail['totneto']; $totdesc = $detail['totdesc']; $totiva = $detail['totiva']; if ($precvta > 0) { $precvta = $precvta / $tasa; } if ($totbruto > 0) { $totbruto = $totbruto / $tasa; } if ($totneto > 0) { $totneto = $totneto / $tasa; } if ($totdesc > 0) { $totdesc = $totdesc / $tasa; } if ($totiva > 0) { $totiva = $totiva / $tasa; } $database->queryUdp("UPDATE dtpedido SET precvta=" . $precvta . ", totbruto=" . $totbruto . ", totneto=" . $totneto . ", totdesc=" . $totdesc . ", totiva=" . $totiva . " WHERE pednum= " . $pednum . " AND codart=\"" . $codart . "\";"); } } } } public function getProductCategories() { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($result = $database->query("SELECT co_cat, cat_des FROM TECH_A.dbo.cat_art"))) { $data = $result; } else { $errors[] = "No se ha encontrado ninguna categoria"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function updateOrderHeader($parameters) { $errors = array(); $database = new externalDatabase(); $pednum = $parameters['fact_num']; $total = $parameters['total']; if (empty($errors)) { $tabenc = $this->getTabEnc(); $tabenc = json_decode($tabenc, true); $tabenc = $tabenc['data']; $tab = $tabenc[0]['tasa']; $tasaD = $this->getTabTasaD(); $tasaD = json_decode($tasaD, true); $tasaD = $tasaD['data']; $tasa_v = $tasaD[0]['tasa_v']; if (!empty($result = $database->select("SELECT porc_gdesc, porc_reca FROM TECH_A.dbo.pedidos WHERE fact_num = ?", array($pednum), array("%s")))) { $porcdesc = $result[0]->porc_gdesc; $porcdesc = (float)$porcdesc; $porcreca = $result[0]->porc_reca; $porcreca = (float)$porcreca; //////////////////////////////////////// $totbruto = ($total * $tasa_v); //cambio monto bruto a bolivar $totdesc = (($totbruto * $porcdesc) / 100); //total descuento $totbrutoD = ($totbruto - $totdesc); //total bruto menos total descuento $totreca = (($totbruto * $porcreca) / 100); //total recargo $totbrutoN = ($totbrutoD + $totreca); //total bruto - descuento + recargo $totiva = ($totbrutoN * $tab) / 100; $totneto = ($totbrutoN + $totiva); $saldo = $totneto; ////////////////////////////////////// /*$totbruto = $total; $totdesc = ($totbruto * $porcdesc) / 100; $totreca = ($totbruto * $porcreca) / 100; $totneto = ($totbruto - $totdesc) + $totreca;*/ if (!empty($database->queryUdp("UPDATE TECH_A.dbo.pedidos SET tot_bruto='$totbrutoN', tot_neto='$totneto', glob_desc='$totdesc', tot_reca='$totreca', saldo='$saldo', iva='$totiva' WHERE fact_num=$pednum"))) { return responses::create(array( 'status' => 200, 'message' => 'Cabecera del pedido actualizada exitosamente' )); } else { return responses::create(array( 'status' => 400, 'message' => 'No se ha podido actualizar la cabecera del pedido' )); } } else { return responses::create(array( 'status' => 400, 'message' => 'No se ha podido actualizar la cabecera del pedido' )); } } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function editOrderDetail($parameters) { $errors = array(); $database = new externalDatabase(); $pednum = $parameters['fact_num']; $rennum = $parameters['reng_num']; $totalart = $parameters['total_art']; $cantpen = $parameters['pendiente']; $totbruto = $parameters['totbruto']; $totneto = $parameters['reng_neto']; $porcdesc = $parameters['porc_desc']; $totdesc = $parameters['totdesc']; $total = $parameters['total']; $co_alma = $parameters['co_alma']; $cant = $parameters['cantA']; $cantA = explode("+", $cant); $co_art = $parameters['co_art']; if (empty($errors)) { $tabenc = $this->getTabEnc(); $tabenc = json_decode($tabenc, true); $tabenc = $tabenc['data']; $tab = $tabenc[0]['tasa']; $tasaD = $this->getTabTasaD(); $tasaD = json_decode($tasaD, true); $tasaD = $tasaD['data']; $tasa_v = $tasaD[0]['tasa_v']; $totneto = $totneto * $tasa_v; if (!empty($result = $database->queryUdp("UPDATE TECH_A.dbo.reng_ped SET total_art='$totalart', pendiente='$cantpen', reng_neto='$totneto', porc_desc='$porcdesc' WHERE fact_num=$pednum AND reng_num=$rennum"))) { $result = $database->select("SELECT porc_gdesc,porc_reca FROM TECH_A.dbo.pedidos WHERE fact_num = ?", array($pednum), array("%s")); $porcdesc = $result[0]->porc_gdesc; $porcdesc = (float)$porcdesc; $porcreca = $result[0]->porc_reca; $porcreca = (float)$porcreca; //////////////////////////////////////// $totbruto = ($total * $tasa_v); //cambio monto bruto a bolivar $totdesc = (($totbruto * $porcdesc)/100); //total descuento $totbrutoD = ($totbruto - $totdesc); //total bruto menos total descuento $totreca = (($totbruto * $porcreca)/100); //total recargo $totbrutoN = ($totbrutoD + $totreca); //total bruto - descuento + recargo $totiva = ($totbrutoN * $tab)/100; $totneto = ($totbrutoN + $totiva); $saldo = $totneto; ////////////////////////////////////// /*$totbruto = $total; $totdesc = ($totbruto * $porcdesc) / 100; $totreca = ($totbruto * $porcreca) / 100; $totneto = ($totbruto - $totdesc) + $totreca;*/ $database->queryUdp("UPDATE TECH_A.dbo.pedidos SET tot_bruto='$totbrutoN', tot_neto='$totneto', glob_desc='$totdesc', tot_reca='$totreca', saldo='$saldo', iva='$totiva' WHERE fact_num=$pednum"); $this->updTabComp(0,$cantA[0],$co_art); $this->updTabAlm(0,$cantA[0],$co_art,$co_alma); $this->updTabComp(1,$totalart,$co_art); $this->updTabAlm(1,$totalart,$co_art,$co_alma); return responses::create(array( 'status' => 200, 'message' => 'Detalle del pedido editado exitosamente' )); } else { return responses::create(array( 'status' => 400, 'message' => 'No se ha podido editar el detalle del pedido' )); } } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function deleteOrderDetail($pednum, $rennum, $co_art, $total_art, $total, $co_alma) { $errors = array(); $database = new externalDatabase(); if (empty($errors)) { if (!empty($result = $database->delete("DELETE FROM TECH_A.dbo.reng_ped WHERE fact_num = $pednum AND reng_num = $rennum"))) { $result = $database->select("SELECT porc_gdesc,porc_reca,co_ven,fec_emis FROM TECH_A.dbo.pedidos WHERE fact_num = ?", array($pednum), array("%s")); $co_ven = $result[0]->co_ven; $fec_emis = $result[0]->fec_emis; $porcdesc = $result[0]->porc_gdesc; $porcdesc = (float)$porcdesc; $porcreca = $result[0]->porc_reca; $porcreca = (float)$porcreca; //////////////////////////////////////// $tabenc = $this->getTabEnc(); $tabenc = json_decode($tabenc, true); $tabenc = $tabenc['data']; $tab = $tabenc[0]['tasa']; $tasaD = $this->getTabTasaD(); $tasaD = json_decode($tasaD, true); $tasaD = $tasaD['data']; $tasa_v = $tasaD[0]['tasa_v']; $totbruto = ($total * $tasa_v); //cambio monto bruto a bolivar $totdesc = (($totbruto * $porcdesc)/100); //total descuento $totbrutoD = ($totbruto - $totdesc); //total bruto menos total descuento $totreca = (($totbruto * $porcreca)/100); //total recargo $totbrutoN = ($totbrutoD + $totreca); //total bruto - descuento + recargo $totiva = ($totbrutoN * $tab)/100; $totneto = ($totbrutoN + $totiva); $saldo = $totneto; ////////////////////////////////////// /*$totbruto = $total; $totdesc = ($totbruto * $porcdesc) / 100; $totreca = ($totbruto * $porcreca) / 100; $totneto = ($totbruto - $totdesc) + $totreca;*/ $database->queryUdp("UPDATE TECH_A.dbo.pedidos SET tot_bruto='$totbrutoN', tot_neto='$totneto', glob_desc='$totdesc', tot_reca='$totreca', saldo='$saldo', iva='$totiva' WHERE fact_num=$pednum"); $this->updGoalUsed(array('codven' => $co_ven, 'codart' => $co_art, 'used' => $total_art, 'fec_emis' => $fec_emis)); $this->updTabComp(0,$total_art,$co_art); $this->updTabAlm(0,$total_art,$co_art,$co_alma); return responses::create(array( 'status' => 200, 'message' => 'Detalle del pedido eliminado exitosamente' )); } else { return responses::create(array( 'status' => 400, 'message' => 'No se ha podido eliminar el detalle del pedido' )); } } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function sendOrderSummaryEmail($email, $clientID,$date,$sellerDescription,$client,$direc1,$conditionDescription, $comment,$validArticles,$totalSummary) { $errors = array(); $database = new externalDatabase(); $email = trim($email); $email = stripslashes($email); $email = htmlspecialchars($email); $validArticles = json_decode($_POST['validArticles'], true); $totalSummary = number_format($totalSummary, 2, ',', '.'); $mail = new PHPMailer(true); $subject = "EMDOM II Resumen de Pedido con fecha: $date"; $body = ""; if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $errors[] = "El correo electronico introducido es invalido"; } if (empty($errors)) { try { //$mail->SMTPDebug = SMTP::DEBUG_SERVER; // Mostrar salida (Desactivar en producción) $mail->isSMTP(); // Activar envio SMTP $mail->Host = 'mail.frigilux.com.ve'; // Servidor SMTP $mail->SMTPAuth = true; // Identificacion SMTP $mail->Username = 'no-responder@frigilux.com.ve'; // Usuario SMTP $mail->Password = 'Frigi1234.'; // Contraseña SMTP $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; $mail->Port = 587; $mail->setFrom('no-responder@frigilux.com.ve', 'plataforma SGE'); // Destinatarios $mail->addAddress($email, $client); //Cuerpo del correo $body = "
Estimado Cliente $client, hemos registrado en nuestro sistema de ventas, un pedido a su nombre el cual se detalla a continuación:
| Producto | Cantidad | Precio | % Descuento | Descuento | Total |
|---|---|---|---|---|---|
| $codart - $artdes | $quantity | $liquidation | $disscount | $disscountTotal | $totalL |
Dirección de Entrega: $direc1
Condición: $conditionDescription
Comentario: $comment
El total de su pedido es por un monto de: $totalSummary $
En caso de no estar conforme con el contenido del pedido registrado comuniquese con el vendedor $sellerDescription.
"; // Contenido del correo $mail->isHTML(true); $mail->Subject = $subject; $mail->Body = $body; //$mail->AltBody = $body; $mail->send(); $database->queryUdp("UPDATE TECH_A.dbo.clientes SET email = '$email' WHERE co_cli = '$clientID'"); return responses::create(array( 'status' => 200, 'message' => 'El correo electronico ha sido enviado exitosamente' )); } catch (Exception $e) { return responses::create(array( 'status' => 400, 'message' => $e )); } } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function sendEditOrderEmail($order, $codart, $vendes, $acc, $cant) { $mail = new PHPMailer(true); $subject = "El vendedor $vendes ha modificado el pedido # $order"; $body = ""; switch ($acc) { case "Edit": $body = "Se ha modificado el artículo "; break; case "Add": $body = "Se ha agregado el artículo "; break; case "Del": $body = "Se ha eliminado el artículo "; break; case "cancel": $body = "Se ha anulado el pedido # $order"; $subject = "El vendedor $vendes ha anulado el pedido # $order"; break; } $body = $body ." ". $codart; if (!empty($cant)){ $cantA = explode("+", $cant); $body = $body." cantidad anterior: ".$cantA[0]." / cantidad nueva ".$cantA[1]; }else { switch ($acc) { case "Edit": $body = $body." en su porcentaje de descuento"; break; } } try { //$mail->SMTPDebug = SMTP::DEBUG_SERVER; // Mostrar salida (Desactivar en producción) $mail->isSMTP(); // Activar envio SMTP $mail->Host = 'mail.frigilux.com.ve'; // Servidor SMTP $mail->SMTPAuth = true; // Identificacion SMTP $mail->Username = 'no-responder@frigilux.com.ve'; // Usuario SMTP $mail->Password = 'Frigi1234.'; // Contraseña SMTP $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; $mail->Port = 587; $mail->setFrom('no-responder@frigilux.com.ve', 'plataforma SGE'); // Destinatarios //$mail->addAddress('edgarjose_1@hotmail.com', 'Edgar Perez'); $mail->addAddress('villegaszuleyma@gmail.com', 'Zuelyma Villegas'); $mail->addAddress('martinezcrismary@gmail.com', 'Crismary Martinez'); $mail->addAddress('marqzrebeca@gmail.com', 'Rebeca Marquez'); //$mail->addAddress('coordinacionalmcx@gmail.com', 'Moises Medina'); $mail->addAddress('sgoldcheidt@hotmail.com', 'Samuel Goldcheidt'); $mail->addAddress('raymondcast75@gmail.com', 'Raymond Castillo'); // Contenido del correo $mail->isHTML(true); $mail->Subject = $subject; $mail->Body = $body; $mail->AltBody = $body; $mail->send(); return responses::create(array( 'status' => 200, 'message' => 'El correo electronico ha sido enviado exitosamente' )); } catch (Exception $e) { return responses::create(array( 'status' => 400, 'message' => $e )); } } // REPORTE DE PEDIDOS // public function getReportOrders($sellID) { $errors = array(); $data = array(); $database = new externalDatabase(); $sql = " "; if(!empty($sellID)) { $sql = " WHERE a.co_ven = $sellID"; } if (!empty($result = $database->query("SELECT fact_num,a.status AS Procesado,a.comentario,fec_emis,dir_ent, CASE WHEN moneda = 'BS' THEN tot_bruto ELSE ROUND((tot_bruto / tasa),2) END AS tot_bruto, CASE WHEN moneda = 'BS' THEN tot_neto ELSE ROUND((tot_neto / tasa),2) END AS tot_neto, CASE WHEN moneda = 'BS' THEN glob_desc ELSE ROUND((glob_desc / tasa),2) END AS glob_desc, CASE WHEN moneda = 'BS' THEN tot_reca ELSE ROUND((tot_reca / tasa),2) END AS tot_reca, CASE WHEN moneda = 'BS' THEN a.iva ELSE ROUND((a.iva / tasa),2) END AS iva,tasa, anulada AS Anulado,aux02 AS Aprobado,b.co_cli,b.cli_des AS Cliente,c.ven_des AS Vendedor, d.cond_des AS Condición,e.zon_des AS Zona, a.revisado AS Revisado FROM TECH_A.dbo.pedidos a LEFT JOIN TECH_A.dbo.clientes b on b.co_cli = a.co_cli LEFT JOIN TECH_A.dbo.vendedor c on c.co_ven = a.co_ven LEFT JOIN TECH_A.dbo.condicio d on d.co_cond = a.forma_pag LEFT JOIN TECH_A.dbo.zona e on e.co_zon = b.co_zon $sql ORDER BY fact_num DESC;"))) { $data = $result; } else { $errors[] = "No se ha encontrado ningún pedido"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getReportOrderDetails($orderID) { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($result = $database->select("SELECT a.co_art,total_art,a.co_alma,a.prec_vta2,porc_desc,TRIM(art_des) AS art_des, CASE WHEN c.moneda = 'BS' THEN a.reng_neto ELSE ROUND((a.reng_neto / c.tasa),2) END AS reng_neto FROM TECH_A.dbo.reng_ped a LEFT JOIN TECH_A.dbo.pedidos c ON c.fact_num = a.fact_num LEFT JOIN TECH_A.dbo.art b ON b.co_art = a.co_art WHERE a.fact_num = ?", array($orderID), array('%s')))) { $data = $result; } else { $errors[] = "No se han encontrado detalles para el pedido"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getClients() { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($result = $database->query('SELECT co_cli, cli_des FROM TECH_A.dbo.clientes;'))) { $data = $result; } else { $errors[] = "Ningún cliente encontrado"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function getGoalsSeller($ID) { $errors = array(); $data = array(); $database = new externalDatabase(); if (!empty($result = $database->query("SELECT DISTINCT YEAR(fec_emis) AS eanio, CASE WHEN CAST(MONTH(fec_emis) AS INT) < 10 THEN '0'+CAST(MONTH(fec_emis) AS CHAR(2)) ELSE CAST(MONTH(fec_emis) AS CHAR(2)) END AS emes,co_art,co_ven,SUM(total_art) AS totalart FROM TECH_A.dbo.reng_ped INNER JOIN TECH_A.dbo.pedidos ON pedidos.fact_num = reng_ped.fact_num WHERE co_ven = '$ID' AND anulada = 0 AND YEAR(fec_emis) = YEAR(GETDATE()) AND MONTH(fec_emis) = MONTH(GETDATE()) GROUP BY YEAR(fec_emis),MONTH(fec_emis),co_art,co_ven;"))) { $data = $result; } else { $errors[] = "No calculado"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } // REPORTE DE PEDIDOS // // PREDESPACHO public function overruleOrderPredispatch($orderID,$auth) //NO USADO { $errors = array(); $database = new database("dbprosge"); if (!empty($results = $database->queryUdp("UPDATE dtpredes SET autorizado = $auth WHERE pednum=".$orderID.";"))) { $data = $results; } else { $errors[] = "No se ha podido actualizar el predespacho"; } if (empty($errors)) { return responses::create(array( 'status' => 200, 'message' => "Predespacho actualizado exitosamente", 'data' => $data )); } else { return responses::create(array( 'status' => 400, 'message' => $errors )); } } public function sendMaterialRequestEmail($parameters) { $errors = array(); $database = new externalDatabase(); //$email = $parameters['email']; //$email = trim($email); //$email = stripslashes($email); //$email = htmlspecialchars($email); //$solicitudnumero = $parameters['solicitudID']; $head = json_decode($_POST['dataH'], true); $detail = json_decode($_POST['dataD'], true); $solicitudID = $head['solicitudnumero']; $solicitante = $head['clides']; $codigoobra = $head['codigoobra']; $descripcionobra = $head['descripcionobra']; $direccionentrega = $head['direccionentrega']; $partida = $head['partida']; $observaciongeneral = $head['observacion']; //$solicitadopor = $head['user']; $solicitadopor = $head['clides'] ." - " .$head['user']; $usuario = $head['clides']; $correo = $head['email']; $fechasolicitud = strtr($head['fechasolicitudXml'], 'áéíóúñÁÂÉÍÓÚÑ', 'aeiounAAEIOUN'); //$fechadespacho = date("d-m-Y",strtotime($head['fechautilizacion'])); $fechadespacho = strtr($head['fechautilizacionXml'], 'áéíóúñÁÂÉÍÓÚÑ', 'aeiounAAEIOUN'); $userID = $head['userID']; echo $userID; $mail = new PHPMailer(true); $subject = "Solicitud de materiales #$solicitudID de $solicitante para la obra $codigoobra - $descripcionobra - $fechasolicitud"; $body = ""; if (empty($errors)) { try { //$mail->SMTPDebug = SMTP::DEBUG_SERVER; // Mostrar salida (Desactivar en producción) $mail->isSMTP(); // Activar envio SMTP $mail->Host = 'mail.venelux.net.ve'; // Servidor SMTP $mail->SMTPAuth = true; // Identificacion SMTP $mail->Username = 'no-responder@venelux.net.ve'; // Usuario SMTP $mail->Password = 'Venelux@2025$'; // Contraseña SMTP $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; $mail->Port = 587; $mail->setFrom('no-responder@venelux.net.ve', 'plataforma SGE'); //$position = 'N/A'; // Destinatarios $emails = $this->getRepliesEmail($userID,'AUTORIZA'); $emails = json_decode($emails, true); $emails = $emails['data']; foreach ($emails as $email) { $mail->addAddress($email['email'], $email['forename']); } //enviar copia del correo $mail->addCC($correo,$usuario); //$mail->addBCC('sgoldcheidt@tecnolux.com.ve','plataforma SGE'); //$mail->addBCC('abnercohenarteaga@gmail.com','despacho Venelux'); //Cuerpo del correo $body = "Se requieren para la obra $codigoobra $descripcionobra los siguientes materiales:
| Material | Código | Unidad medida | Cantidad | Observación |
|---|---|---|---|---|
| $artdes | $codart | $unidad | $cantidad | $observacion |
Los materiales indicados serán utilizados en $partida con fecha de entrega $fechadespacho
y los mismos deben ser despachados a la dirección  $direccionentrega
Observación: $observaciongeneral
"; } $body = $body ." "."Solicitado por: $solicitadopor
Fecha solicitado: $fechasolicitud
Se requiere gestionar la compra de los siguientes materiales para la obra $codigoobra $descripcionobra
| Material | Código | Unidad medida | Cantidad | Observación |
|---|---|---|---|---|
| $artdes | $codart | $unidad | $cantidadcompra | $observacion |
Los materiales indicados serán utilizados en $partida con fecha de entrega $fechadespacho
y los mismos deben ser despachados a la dirección  $direccionentrega
Observación: $observaciongeneral
"; } if (!empty($comentario)) { $body = $body ." "."**Nota importante: $comentario
"; } $body = $body ." "."Autorizado por: $autorizadopor
Fecha autorizado: $fechaautorizado
Se requiere gestionar el despacho de los siguientes materiales para la obra $codigoobra $descripcionobra
| Material | Código | Unidad medida | Cantidad | Almacén despacho | Observación |
|---|---|---|---|---|---|
| $artdes | $codart | $unidad | $cantidaddespacho | $almacendespacho | $observacion |
Los materiales indicados serán utilizados en $partida con fecha de entrega $fechadespacho
y los mismos deben ser despachados a la dirección  $direccionentrega
Observación: $observaciongeneral
"; } if (!empty($comentario)) { $body = $body ." "."**Nota importante: $comentario
"; } $body = $body ." "."Autorizado por: $autorizadopor
Fecha autorizado: $fechaautorizado