<?php

session_start();
date_default_timezone_set('America/Lima');
if($_SESSION["sistema"]!= "1"){ header("location: ../login/index.php"); exit();}
 // ini_Set('display_errors',1);
require_once ("../../config/Cado.php");
require_once ("../../config/Datos.php");
require_once ("../talonario/cTalonario.php");
$oTalonario= new cTalonario();
require_once '../cotizacion/cCotizacion.php';
$oCotizacion = new cCotizacion();
require_once("../venta/cVenta.php");
$oVenta = new cVenta();
require_once("../venta/cVentapago.php");
$oVentapago = new cVentapago();
require_once ("../documento/cDocumento.php");
$oDocumento= new cDocumento();
require_once("../kardex/cKardex.php");
$oKardex = new cKardex();
require_once("../almacen/cAlmacen.php");
$oAlmacen = new cAlmacen();
require_once ("../tarjeta/cTarjeta.php");
$oTarjeta = new cTarjeta();
require_once ("../producto/cCatalogo.php");
$oCatalogo = new cCatalogo();
require_once ("../ingreso/cIngreso.php");
$oIngreso = new cIngreso();
require_once ("../stock/cStock.php");
$oStock = new cStock();
require_once("../cliente/cCliente.php");
$oCliente = new cCliente();
require_once ("../caja/cCaja.php");
$oCaja = new cCaja();

require_once("../producto/cProductomarca.php");
$oProductomarca = new cProductomarca();
require_once("../producto/cProductomarcacodigo.php");
$oProductomarcacodigo = new cProductomarcacodigo();
require_once("../tipocambiotesoreria/cTipocambiotesoreria.php");
$oTipocambiotesoreria = new cTipocambiotesoreria();

require_once("../tipocambio/cTipocambio.php");
$oTipocambio = new ctipocambio();


require_once ("../historial/cHistorial.php");
$oHistorial = new cHistorial();

require_once("../formatos/formato.php");


$fecha = date('Y-m-d');

function responder($estado=false, $mensaje='', $datos=[])
{
	header('Content-Type: application/json');
	echo json_encode([
		'est' => $estado,
		'msj' => $mensaje,
		'dat' => $datos,
	]);
	exit;
}



if($_POST['action_venta']=="eliminarregistro"){
	
	$oVenta->modificar_campo($_POST['ven_id'],'xac','0');
	$data['est']='1';
	$data['msj']='Registro eliminado.';
	echo json_encode($data);
	
}

if($_POST['action_venta']=="actualizarprecio"){
	
	$oVenta->modificar_campodetalle($_POST['vendet_id'],'preuni',moneda_mysql($_POST['pre']));
	$data['est']='1';
	$data['msj']='Precio actualizado';
	echo json_encode($data);
	
}



if($_POST['action_venta']=="cambiarestadosunat"){
	
	$oVenta->act_sunat($_POST['ven_id'],'2');
	$data['msj']='Estado actualizado';
	echo json_encode($data);
	
}


if($_POST['action_venta']=="cambiar_estado")
{
$oVenta->cambiarest_detalle($_POST['detid']);
$data['msj']='Producto entregado.';
echo json_encode($data);
}
	

if($_POST['action_venta']=="insertar")
{
    
    
    
    
if(isset($_SESSION['venta_catid'])){
	$num_rows=count($_SESSION['venta_catid']);
	if($num_rows==0)$num_rows="";
}else{
	$num_rows="";
}

	
	
	if($num_rows>0){
	
    
    
	if(!empty($_POST['txt_ven_fec']))
	{
		
		if($_POST['txt_ven_tot']==0){
			
		$data['ven_msj'] = 'El monto total es cero';
		$data['ven_est']=0;
		
		}else{
			
			
		
			
			//$cst1 = $oCliente->verifica_cliente_doc($_POST['txt_ven_cli_doc'],0);
			$cst1 = $oCliente->verifica_cliente_nom($_POST['txt_ven_cli_nom'],$_POST['txt_ven_cli_doc']);
			$can1 = mysqli_num_rows($cst1);
			
			
			//echo $can1.'--';
			
			if($_POST['hdd_ven_cli_id']==''){
			
			$can = strlen($_POST['txt_ven_cli_doc']);
			
			
			//echo '..'.$can;
			if($can == 8){
				$tip = 1;
				$estcli = 0;
			}else if($can == 11){
				$tip = 2;
				$estcli = 0;
			}else{
				$estcli = 1;
			}
			
			if($can1>0){
				
				$dt = mysqli_fetch_array($cst1);
				$cli_id=$dt['tb_cliente_id'];
				$cli_nom=$dt['tb_cliente_nom'];
				$cli_veh='';
				mysqli_free_result($cst1);
				
				$dts1=$oCliente->filtrardirecciones($cli_id,'');
				$dt1 = mysqli_fetch_array($dts1);
				$cli_dir=$dt1['tb_clientedireccion_nom'];
				mysqli_free_result($cst1);
				
			}else{
			
			if($estcli==0){
				
			$oCliente->insertar(
				$tip, 
				limpia_espacios($_POST['txt_ven_cli_nom']), 
				$_POST['txt_ven_cli_doc'], 
				'', 
				$_POST['txt_ven_cli_tel'], 
				$_POST['txt_ven_cli_cor'],
				'',
				intval(0)
				);
				
				$dtscli=$oCliente->ultimoInsert();
				$dt = mysqli_fetch_array($dtscli);
				$cli_id=$dt['id'];
				mysqli_free_result($dtscli);
				
				$cli_dir = $_POST['txt_ven_cli_dir'];
				$cli_nom = $_POST['txt_ven_cli_nom'];

			$oCliente->insertardireccionsunat('1',$_POST['txt_ven_cli_dir'],$cli_id);	
			}
			
			}
			
		}else{
			$cli_id = $_POST['hdd_ven_cli_id'];
			$cli_dir = $_POST['cmb_ven_cli_dir'];
			$cli_nom = $_POST['txt_ven_cli_nom'];
		}
			
			
			
			
			
			
			if($estcli==0){
			
			
			
			
			
			
			
			
			
			
			$dts1=$oAlmacen->mostrarAlmCajEmp($_POST['txt_punven_id']);
			$dt1 = mysqli_fetch_array($dts1);
 			$emp=$dt1['tb_empresa_id'];
 			$punven_id=$dt1['tb_puntoventa_id'];
 			$piso_id=$dt1['tb_piso_id'];
 			$alm = $dt1['tb_almacen_id'];
 			//$caj_id = $dt1['tb_caja_id'];
			mysqli_free_result($dts1);
			
			
			$dtsc=$oCaja->mostrarCajaVenta($_POST['txt_punven_id'],$_POST['txt_mone_id']);
			$dtc = mysqli_fetch_array($dtsc);
 			$caj_id= $dtc['tb_caja_id'];
			mysqli_free_result($dtsc);
			
			
		
			
		$est = 1;
			
		$dts= $oDocumento->mostrarUno($_POST['cmb_doc_id']);
		$dt = mysqli_fetch_array($dts);
		$doc_nom=$dt['tb_documento_nom'];
		$doc_abr=$dt['tb_documento_abr'];
		mysqli_free_result($dts);
		
		
		if($doc_abr=='T'){
		$ser = 'T00'.$_SESSION['usuario_ser'];
		}else if($doc_abr=='F'){
		$ser = 'F00'.$_SESSION['usuario_ser'];
		}else if($doc_abr=='B'){
		$ser = 'B00'.$_SESSION['usuario_ser'];
		}else if($doc_abr=='GR'){
		$ser = 'GR00'.$_SESSION['usuario_ser'];
		}else if($doc_abr=='NC'){
		$ser = 'NC00'.$_SESSION['usuario_ser'];
		}else if($doc_abr=='P'){
		$ser = 'P00'.$_SESSION['usuario_ser'];
		}else if($doc_abr=='TR'){
		$ser = 'TR00'.$_SESSION['usuario_ser'];
		}else if($doc_abr=='NA'){
		$ser = 'NA00'.$_SESSION['usuario_ser'];
		}

		$dts= $oTalonario->correlativo($_POST['txt_punven_id'],$_POST['cmb_doc_id'],$ser);
		$dt = mysqli_fetch_array($dts);
			$tal_id=$dt['tb_talonario_id'];
			$tal_ser=$dt['tb_talonario_ser'];
			$tal_fin=$dt['tb_talonario_fin'];
			$tal_num=$dt['tb_talonario_num'];
		mysqli_free_result($dts);

		$numero=$tal_num;
		$largo=strlen($tal_fin);
		$numero=str_pad($numero,$largo, "0", STR_PAD_LEFT);
		$numdoc=$tal_ser.'-'.$numero;
		
		$fec =$_POST['txt_ven_fec'];    //date('d-m-Y');
			
		if($_POST['txt_mone_id']==1){
			$tipcam = 1;
		}else{	
			
		 $rs = $oTipocambio->consultar(fecha_mysql($fecha));  
		 $dt = mysqli_fetch_array($rs);
		 $tipcam = formato_money3($dt['tb_tipocambio_dolsun']);
		
		}
		
		
		if($_POST['txt_venpag_fecven'] =="" || $_POST['txt_venpag_fecven']=='00-00-0000'){
		$fecvenpag = $fec;
		}else{
		$fecvenpag = $_POST['txt_venpag_fecven'];
		}
		
		
		
			//insertamos venta
		$rs=$oVenta->insertar(
			fecha_mysql($fec),
			fecha_mysql($fecvenpag),
			$_POST['cmb_doc_id'],
			$numdoc,
			$_POST['txt_mone_id'],
			$tipcam,
			$cli_id,
			$cli_nom,
			$cli_dir,
			$_POST['cmb_ven_cli_vehi'],
			moneda_mysql($_POST['txt_ven_valven']),
			moneda_mysql($_POST['txt_ven_des']),
			moneda_mysql($_POST['txt_ven_igv']),
			moneda_mysql($_POST['txt_ven_tot']),
			$est,			
			$_SESSION['usuario_id'],
			$_SESSION['usuario_id'],
			$piso_id,
			$_POST['txt_punven_id'],
			'--',
			0,//tb_venta_gra
			0,//tb_venta_ina
			0,//tb_venta_exo
			0,//tb_venta_grat
			0,//tb_venta_isc
			0,
			0,
			0,
			0,
			'',
			'',
			'',
			'0',
			'',
			$app_igv_val,
			$app_igv_sub,
			$app_igv_igv
		);

			
		//ultima venta
		$dts=$oVenta->ultimoInsert();
		$dt = mysqli_fetch_array($dts);
		$ven_id=$dt['id'];
		mysqli_free_result($dts);
				
		$estado='1';
		if($tal_num==$tal_fin)
		{
			$estado='2';
		}
		$numero=$tal_num+1;
		$rs3 = $oTalonario->actualizar_correlativo($tal_id, $numero, $estado);
				
				
		$kar_des='VENTA';
		$mod_id = 3; // VENTA MOD 3
		$idm=$ven_id;//id de la op(modulo compras, ventas, etc)

		//insertamos kardex
		$oKardex->insertar(			
			fecha_mysql($fec),			
			$kar_des,
			$mod_id,
			$idm,
			$_SESSION['usuario_id'],
			$_SESSION['usuario_id'],
			'0'
		);
			
		$dts=$oKardex->ultimoInsert();
		$dt = mysqli_fetch_array($dts);
		$kar_id=$dt['id'];
		mysqli_free_result($dts);
			
		
		
	
		$ctax=$oIngreso->obtener_cuenta_ingreso();
		$cta = mysqli_fetch_array($ctax);
			$ing_cue_id	=$cta['tb_cuenta_id'];
		mysqli_free_result($ctax);

			// un solo pago
		if ($_POST['hdd_venpag_val']=="")
		{
			$ingreso=0;
			if($_POST['cmb_forpag_id']==1)
			{
				$forma='CONTADO';
				$est=1;
				$ingreso=1;

			
					$modpag = $_POST['cmb_modpag_id'];
		
		if($modpag == '1'){
			$modo='CONTADO - EFECTIVO';
		}else if($modpag == '2'){
			$modo='CONTADO - DEPOSITO';
		}else if($modpag == '3'){
			$modo='CONTADO - TRANSFERENCIA';
		}else if($modpag == '4'){
			$modo='CONTADO - CHEQUE';
		}else if($modpag == '5'){
			$modo='CONTADO - TARJETA';
		}
				
				
			$_POST['txt_venpag_fecven'] = $fec;
			
			}
			
			if($_POST['cmb_forpag_id']==2)
			{
				$forma='CREDITO';
				$modo='CREDITO';
				$est=2;
				$_POST['txt_venpag_fecven'] = $_POST['txt_venpag_fecven'];
			}
			
			
			if($_POST['txt_venpag_numdia']==''){
				$_POST['txt_venpag_numdia'] = 0;
			}
			
			if($_POST['txt_venpag_fecven']==''){
				$_POST['txt_venpag_fecven'] = $fec;
			}
			
			$rs1=$oVentapago->insertar(
				$_POST['cmb_forpag_id'],
				$_POST['cmb_modpag_id'],
				moneda_mysql($_POST['txt_venpag_mon']),
				$_POST['txt_venpag_numdia'],
				fecha_mysql($_POST['txt_venpag_fecven']),
				$est,
				$ven_id,
				'2'
			);

			$dtsvp=$oVentapago->ultimoInsert();
			$dtvp = mysqli_fetch_array($dtsvp);
				$venpag_id=$dtvp['id'];
			mysqli_free_result($dtsvp);

		$rs1=$oVentapago->insertar_ventapago_ingreso(
				fecha_mysql($fec)
		);
			
		$dtsvpi=$oVentapago->ultimoInsertVentaPagoIngreso();
		$dtvpi = mysqli_fetch_array($dtsvpi);
		$venpagiing_id=$dtvpi['id'];
		mysqli_free_result($dtsvpi);
				
		$oVentapago->insertar_ventapago_ingreso_detalle($venpagiing_id,$venpag_id);
			
			if($ingreso==1)
			{
				//ingreso
				$ing_det="VENTA $doc_nom $numdoc | $modo";
				$ing_est=1;
				$mon_id=$_POST['txt_mone_id'];
				$mod_id=3; //modulo 3 venta
				$ing_subcue_id = 0;
				
				$rs2=$oIngreso->insertar(
					$_SESSION['usuario_id'],
					$_SESSION['usuario_id'],
					fecha_mysql($_POST['txt_ven_fec']),
					fecha_mysql($_POST['txt_ven_fec']),
					$_POST['cmb_doc_id'],
					$numdoc,
					$ing_det,
					moneda_mysql($_POST['txt_ven_tot']),
					$ing_est,
					$ing_cue_id,
					moneda_mysql($ing_subcue_id),
					$cli_id,
					$caj_id,
					$mod_id,
					$venpagiing_id,
					$_POST['cmb_forpag_id'],
					$_POST['cmb_modpag_id'],
					moneda_mysql(''),
					moneda_mysql(''),
					moneda_mysql(''),
					moneda_mysql(''),
					$_POST['txt_venpag_numope']
				);
			}
			
		}
		
		//varios pagos
		if ($_POST['hdd_venpag_val']=="1")
		{
			if (isset($_SESSION['venpag_mon']))
			{
				foreach ($_SESSION['venpag_mon'] as $indice => $valor)
				{
					$ingreso=0;

					if($_SESSION['venpag_for'][$indice]==1)
					{
						$forma='CONTADO';
						$est=1;
						$ingreso=1;

						if($_SESSION['venpag_mod'][$indice]==1)
						{
							$modo='EFECTIVO';
							$caj_id=$caj_id;
						}

						if($_SESSION['venpag_mod'][$indice]==2)
						{
							$modo='DEPOSITO';

						}

						if($_SESSION['venpag_mod'][$indice]==3)
						{
							$modo='TRANSFERENCIA';
							
						}
						if($_SESSION['venpag_mod'][$indice]==4)
						{
							$modo='CHEQUE';
							
						}
						if($_SESSION['venpag_mod'][$indice]==5)
						{
							$modo='TARJETA';
							
						}

						
					}
			
					if($_SESSION['venpag_for'][$indice]==2)
					{
						$forma='CREDITO';
						$modo='CREDITO';
						$est=2;
					}
					
					
		if($_SESSION['venpag_numdia'][$indice]==''){
				$_SESSION['venpag_numdia'][$indice] = 0;
			}
			
			if($_SESSION['venpag_fecven'][$indice]==''){
				$_SESSION['venpag_fecven'][$indice] = $fec;
			}
			
			

					$oVentapago->insertar(
						$_SESSION['venpag_for'][$indice],
						$_SESSION['venpag_mod'][$indice],
						moneda_mysql($valor),
						$_SESSION['venpag_numdia'][$indice],
						fecha_mysql($_SESSION['venpag_fecven'][$indice]),
						$est,
						$ven_id,
						'2'
					);

					$dtsvp=$oVentapago->ultimoInsert();
					$dtvp = mysqli_fetch_array($dtsvp);
						$venpag_id=$dtvp['id'];
					mysqli_free_result($dtsvp);



					$rs1=$oVentapago->insertar_ventapago_ingreso(
							fecha_mysql($fec)
						);
			
		$dtsvpi=$oVentapago->ultimoInsertVentaPagoIngreso();
		$dtvpi = mysqli_fetch_array($dtsvpi);
		$venpagiing_id=$dtvpi['id'];
		mysqli_free_result($dtsvpi);
				
		$oVentapago->insertar_ventapago_ingreso_detalle($venpagiing_id,$venpag_id);
		

					if($ingreso==1)
					{
						//ingreso
						$ing_det="VENTA $doc_nom $numdoc | $modo";
						$ing_est=1;
						$mon_id=$_POST['txt_mone_id'];
						$mod_id=3; //modulo 3 venta
						$ing_subcue_id = 0;
						
			$rs2=$oIngreso->insertar(
					$_SESSION['usuario_id'],
					$_SESSION['usuario_id'],
					fecha_mysql($_POST['txt_ven_fec']),
					fecha_mysql($_POST['txt_ven_fec']),
					$_POST['cmb_doc_id'],
					$numdoc,
					$ing_det,
					moneda_mysql($valor),
					$ing_est,
					$ing_cue_id,
					moneda_mysql($ing_subcue_id),
					$cli_id,
					$caj_id,
					$mod_id,
					$venpagiing_id,
					$_SESSION['venpag_for'][$indice],
					$_SESSION['venpag_mod'][$indice],
					moneda_mysql(''),
					moneda_mysql(''),
					moneda_mysql(''),
					moneda_mysql(''),
					$_SESSION['venpag_numope'][$indice]
				);
			}
				//	$sumacuentas += $valor;
					
				}
			}

			if(isset($_SESSION['venpag_mon']))
			{
				unset($_SESSION['venpag_mon']);
				unset($_SESSION['venpag_for']);
				unset($_SESSION['venpag_mod']);
				unset($_SESSION['venpag_cuedep']);
				unset($_SESSION['venpag_tar']);
				unset($_SESSION['venpag_numope']);
				unset($_SESSION['venpag_numdia']);
				unset($_SESSION['venpag_fecven']);
			}
		}
		
		/*	if(moneda_mysql($_POST['txt_ven_tot'])!=moneda_mysql($sumacuentas)){
		    
		    $valor_paga = moneda_mysql($_POST['txt_ven_tot']) - moneda_mysql($sumacuentas);
		    	$ing_det="VENTA $doc_nom $numdoc | $modo";
						$ing_est=1;
						$mon_id=$_POST['txt_mone_id'];
						$mod_id=3; //modulo 3 venta
		    	$oIngreso->insertar(
							$_SESSION['usuario_id'],
							$_SESSION['usuario_id'],
							fecha_mysql($_POST['txt_ven_fec']),
							$ing_doc_id,
							$ing_numdoc,
							$ing_det,
							moneda_mysql($valor_paga),
							$ing_est,
							$ing_cue_id,
							$ing_subcue_id,
							$_POST['hdd_ven_cli_id'],
							$caj_id,
							$mon_id,
							$mod_id,
							$venpag_id,
							$emp
						);
		    
		}
		
	*/	
		
		
		
		foreach($_SESSION['venta_catid'] as $indice=>$cant)
		{
			
			$mar_id = $_SESSION['venta_marid'][$indice];			
			$cat_id = $_SESSION['venta_catid'][$indice];
			//$alm_id = $_SESSION['venta_alm_cat1'][$indice];
			
			$dts=$oCatalogo->mostrarUno($cat_id,$mar_id);
			$dt = mysqli_fetch_array($dts);
				$emp_fac	= $dt['tb_empaque_fac'];
				$pre_id	= $dt['tb_presentacion_id'];
				$cat_fac = $dt['tb_catalogo_fac'];
				$pro_id = $dt['tb_producto_id'];
				$pro_nom = $dt['tb_producto_nom'];
				$precos = $dt['tb_productomarca_precos'];
			mysqli_free_result($dts);
	
			$valor_uni = $_SESSION['venta_preven'][$indice];
			$can =  $_SESSION['venta_can'][$indice];
			$des_uni = $_SESSION['venta_des'][$indice];
			$est =  $_SESSION['venta_est'][$indice];
			
			$can1 = $can;
			$pos = strpos($can1, 'F');
			
			if($pos===false){
			$can  = $can1 * $emp_fac;
			$precos = $precos * $can1 ;
			}else{
			
			$cane = 0;
			$canf = 0;
			list($cane,$canf) = explode('F',$can1);
			$can2 = 0;
			if($cane>0){
				$can2 = $cane*$emp_fac;
			}
			$can = $can2 + $canf;
			$precos = $precos / $emp_fac;
			$precos = $precos * $canf;
			}
			
			
			/* $rscod = $oProductomarcacodigo->mostrarUno($cat_id,'1');
			$dtcod = mysqli_fetch_array($rscod);
			
			$cat_cod = $dtcod['tb_productomarcacodigo_cod']; */
			
			// echo $_SESSION['venta_emp_alm1'][$indice];
			
		 $des_uni = 0;
			
			$oVenta->insertar_detalle(			
				$pro_id,
				$cat_id,
				$mar_id,
				$pro_nom,
				$can,
				moneda_mysql($valor_uni),
				moneda_mysql($des_uni),
				$ven_id,
				$est,
				moneda_mysql($precos)
			);
			
			if($can>=1){
			  // $oProductomarca->modificar_campo2($cat_id,$mar_id,'preven',$valor_uni);
			}
			
			$dts=$oStock->stock_por_presentacion($cat_id,$mar_id,$alm);
			$dt = mysqli_fetch_array($dts);
			$sto_id		=$dt['tb_stock_id'];
			$sto_num	=$dt['tb_stock_num'];
			mysqli_free_result($dts);
					
			//actualizacion de stock
			$stock_nuevo=$sto_num-$can;
			
			$oStock->modificar($sto_id,$stock_nuevo);
			
			
			$kar_tipo=2;//1 entrada 2 salida

			$oKardex->insertar_detalle(
				$cat_id,
				$mar_id,
				$kar_tipo,
				$can,
				formato_money($valor_uni),
				$can,
				$kar_id,
				$alm
			);
		
		}

		
		
		if($_POST['hdd_vis_id']=='cotizacion'){
			
		$oCotizacion->modificar_campo($_POST['hdd_cot_id'],'genven','1');	
		$oCotizacion->modificar_campo($_POST['hdd_cot_id'],'est','2');	
		$oCotizacion->modificar_campo($_POST['hdd_cot_id'],'docrel',$numdoc);	
			
			
		}else{
			
		}
		
		// echo  $almid.' - '.$emp.' - '.$cajid;
		
		$user_agen = $_SERVER['HTTP_USER_AGENT'];
		$mod = 3;
		$mod_ide = $ven_id;
		$det = 'VENTA REGISTRADA ['.$doc_nom.' N°: '.$numdoc.']';
		$fec = date('Y-m-d');
		$doc_id = $_POST['cmb_doc_id'];
		$numdoc = $numdoc;
	 	$ip = mostrar_ip();
		
		$oHistorial->insertar(
		fecha_mysql($fec),
		$det,
		$ip,
		$_SESSION['usuario_id'],
		$mod,
		$mod_ide,
		$doc_id,
		$numdoc
		);

		
		
  		$data['ven_msj']='Se registró correctamente: '.$doc_nom.' N°: '.$numdoc;
		$data['ven_docabr']=$doc_abr;
		$data['ven_id']=$ven_id;
		$data['ven_est']=1;
		
		if($_POST['chk_imprimir']==1)
	  	{
	  		$data['ven_act']='1';
	  	}
		
		}else{
			$data['ven_msj']='El documento no es DNI/RUC - Corregir';
		
			$data['ven_est']=0;
		}
		
		}
		
	}
	else
	{
		$data['ven_msj']='Intentelo nuevamente.';
	}
	
	}else{
		$data['ven_msj']='Venta sin detalles.';
	}
	
	
	echo json_encode($data);
}
?>

