🌹🏠🌹？》《》？《》？<?php
include_once "../include/session.php";
include_once "../Lib/inicio.php";
include_once "../Lib/funciones.php";
include_once "../Lib/r_general.php";
include_once "../Lib/c_pdcabe.php";
include_once "../Lib/c_empresa.php";
include_once "../Lib/r_rem_cab.php";
include_once "../Lib/c_articulo.php";
include_once "../Lib/r_funciones_fecha.php";
include_once "../Lib/c_stock.php";
include_once "../Lib/c_stock_dep.php";
include_once "../Lib/r_cpbtnumeros.php";

/**
 * aca puedo recuperar la $_SESSION
 *
 * $_SESSION = get(Select session from sessions_data where cookie = $_COOKIE['::1_0'])
 */
if(isset($_COOKIE['last_id'])){
    $p_sql="select session from sessions_data where id  = '".$_COOKIE['last_id']."'";
    $resultado=odbc_fetch_array(@odbc_exec($Base->conexion,$p_sql));
    $_SESSION=json_decode(gzuncompress(base64_decode($resultado['session'])),true);

//    $_SESSION=json_decode($resultado['session'],true);
}

$funcion            = "r_nada";
$pa_return['msg']   = "";
$pa_return['error'] = "OK";
if ($Base->tipo_base != 'I'){
   $p_fecha            = date("Ymd H:i:s");
   $p_fecha_corta      = date("Ymd");
}
else{
   $p_fecha            = date("Y-m-d H:i:s");
   $p_fecha_corta      = date("d-m-Y");
}
$sql_rollback       = 'N';

$p_esta=0;
if (isset($_POST['funcion'])) {
  $funcion=$_POST['funcion'];
  $p_esta=1;
}

$resultado=$funcion();
if ($p_esta==0) {
  return $resultado;
}
else  {
  echo $resultado;
}

function r_nada()
{
  return "";
}

function r_cal_fecha_ing()
{
global $Base,$pa_return,$sql_rollback;

$p_hora   = date("H:i:s");
$p_fecha  = date("Y-m-d");

$p_empresa = $_POST['empresa'];
$p_hora_tope = "14:00:00";
switch ($p_empresa) {
   case '79':
      $p_hora_tope = "12:00:00";
      break;
   case '157':
      $p_hora_tope = "12:00:00";
      break;
   case '162':
      $p_hora_tope = "12:00:00";
      break;
   default:
     break;
}
if ($p_hora > $p_hora_tope ){
   $p_fecha_ing = r_fecha_habil_siguiente($p_fecha);
   //$p_fecha  = new DateTime($p_fecha);
   //$p_fecha-> modify("+1 days");
  //$p_fecha_ing = $p_fecha->format("Y-m-d");
}
else{
  $p_fecha_ing = $p_fecha;
}

$pa_return['fing'] = $p_fecha_ing;
$pa_return['tipo'] = 'N';
if ($p_empresa == 163 ){
   $pa_return['tipo'] = 'S';
}

$pa=array();
if ($p_empresa == 12 ){
   $p_sql="select a.concepto,a.descripcion from fc_concepto a
       where a.estado    != 99
         and a.concepto in ( 2 ) 
         order by 1";
}
else{
   $p_sql="select a.concepto,a.descripcion from fc_concepto a, fc_empresa b
       where a.concepto  = b.concepto 
         and a.estado    != 99
         and b.empresa    = '$p_empresa' 
         and a.concepto in ( 2,3,31 ) 
         order by 1";
}
$resultado=@odbc_exec($Base->conexion, $p_sql);
if (!$resultado){
      $pa[] = array('codigo'=>0,'msg'=>"No hay conceptos para la empresa");
}
else{
   $p_can=0;
   while($fila=odbc_fetch_array($resultado)) {
      $p_descripcion = GLSA::eliminar_simbolos(trim(htmlentities($fila['descripcion'],ENT_SUBSTITUTE)));
      $p_can++;
      $pa[] = array('codigo'=>$fila['concepto'],'msg'=>$p_descripcion);
   }
   if ($p_can <= 0 ) {
      $pa[] = array('codigo'=>0,'msg'=>"No hay conceptos para la empresa");
   }
}
$pa_return['con']=$pa;

r_salida();
}

function r_modif_remitos()
{
global $Base,$pa_return,$p_fecha,$sql_rollback;
$p_indice = trim($_POST['indice']);
$p_cual   = $_POST['cual'];
// valido que todo quede ok
$p_can_error = 0;
$p_estado_aux = $_SESSION[$p_indice][$p_cual]['estado'];
foreach ($_SESSION[$p_indice][$p_cual]['detalle'] as $key=>$value ) {
   if ($value['estado'] != 0) {
      $p_estado_aux = $value['estado'];
      $p_can_error++;
   }
}
if ($p_can_error == 0){
   $_SESSION[$p_indice][$p_cual]['estado']  = 0;
}
else{
   $_SESSION[$p_indice][$p_cual]['estado']  = $p_estado_aux;
}
$_SESSION[$p_indice][$p_cual]['cliente']        = GLSA::eliminar_simbolos(trim($_POST['cliente']));
$_SESSION[$p_indice][$p_cual]['cuit']           = trim($_POST['cuit']);
$_SESSION[$p_indice][$p_cual]['direccion']      = GLSA::eliminar_simbolos(trim($_POST['direccion']));
$_SESSION[$p_indice][$p_cual]['mail']           = GLSA::eliminar_simbolos(trim($_POST['email']));
$_SESSION[$p_indice][$p_cual]['tel']            = GLSA::eliminar_simbolos(trim($_POST['telefono']));
$_SESSION[$p_indice][$p_cual]['cod_provincia']  = trim($_POST['provincia']);
$_SESSION[$p_indice][$p_cual]['provincia']      = trim($_POST['provincia_des']);
$_SESSION[$p_indice][$p_cual]['cod_localidad']  = trim($_POST['localidad']);
$_SESSION[$p_indice][$p_cual]['localidad']      = trim($_POST['localidad_des']);
$_SESSION[$p_indice][$p_cual]['cod_postal']     = trim($_POST['cod_postal']);
$_SESSION[$p_indice][$p_cual]['valor_declarado'] = $_POST['valor_declarado'];
$_SESSION[$p_indice][$p_cual]['edificio']       = trim($_POST['edificio']);
$_SESSION[$p_indice][$p_cual]['nro_oc']         = trim($_POST['nro_oc']);
$_SESSION[$p_indice][$p_cual]['letra_fc']       = trim($_POST['letra_fc']);
$_SESSION[$p_indice][$p_cual]['sucur_fc']       = trim($_POST['sucur_fc']);
$_SESSION[$p_indice][$p_cual]['numero_fc']      = trim($_POST['numero_fc']);
$_SESSION[$p_indice][$p_cual]['turno']          = trim($_POST['turno']);
$_SESSION[$p_indice][$p_cual]['fecha_turno']    = date("Ymd",strtotime($_POST['fecha_turno']));
if ($_SESSION[$p_indice][$p_cual]['fecha_turno'] == "1969-12-31"){
  $_SESSION[$p_indice][$p_cual]['fecha_turno'] = "";
}
$_SESSION[$p_indice][$p_cual]['hora_pactada']   = trim($_POST['hora_pactada']);

//var_dump($Base->r_begin_trans());die();
$Base->r_begin_trans();
if ($Base->error != 0 ){
   $pa_return['error'] = 'NOK';
   $pa_return['msg']   = '01- Error. No se pudo hacer [begin] !! ';
   r_salida();
}
$sql_rollback = "S";

$p_cli = substr($_SESSION[$p_indice][$p_cual]['cliente'],0,40);
$p_dir = substr($_SESSION[$p_indice][$p_cual]['direccion'],0,50);
$p_tel = trim($_SESSION[$p_indice][$p_cual]['tel']);
$p_mail = trim($_SESSION[$p_indice][$p_cual]['mail']);
$p_sql="select * from inter02 
       where empresa = '{$_POST['empresa']}' 
         and tdoc    = 'RTO'
         and ldoc    = '{$_POST['letra']}'
         and sdoc    = '{$_POST['sucur']}'
         and ndoc    = '{$_POST['numero']}' ";
$Base->r_select_fila($p_sql,"inter02");
if ($Base->error == 0){
  $p_sql="update inter02 set nom_ent   = '$p_cli',
                           cuit      = '{$_SESSION[$p_indice][$p_cual]['cuit']}',
                           dir_ent   = '$p_dir',
                           cod_pcia_ent = '{$_SESSION[$p_indice][$p_cual]['cod_provincia']}',
                           pcia_ent  = '{$_SESSION[$p_indice][$p_cual]['provincia']}',
                           cod_loc_ent  = '{$_SESSION[$p_indice][$p_cual]['cod_localidad']}',
                           loc_ent   = '{$_SESSION[$p_indice][$p_cual]['localidad']}',
                           cp_ent    = '{$_SESSION[$p_indice][$p_cual]['cod_postal']}',
                           valor_dec = '{$_SESSION[$p_indice][$p_cual]['valor_declarado']}',
                           edificio  = '{$_SESSION[$p_indice][$p_cual]['edificio']}',
                           o_compra  = '{$_SESSION[$p_indice][$p_cual]['nro_oc']}',
                           letdoc    = '{$_SESSION[$p_indice][$p_cual]['letra_fc']}',
                           sucdoc    = '{$_SESSION[$p_indice][$p_cual]['sucur_fc']}',
                           nrodoc    = '{$_SESSION[$p_indice][$p_cual]['numero_fc']}',
                           turno     = '{$_SESSION[$p_indice][$p_cual]['turno']}',
                           fecha_turno  = '{$_SESSION[$p_indice][$p_cual]['fecha_turno']}',
                           hora_pactada = '{$_SESSION[$p_indice][$p_cual]['hora_pactada']}',
                           tel       = '$p_tel'
         where empresa = '{$_POST['empresa']}' 
           and tdoc    = 'RTO'
           and ldoc    = '{$_POST['letra']}'
           and sdoc    = '{$_POST['sucur']}'
           and ndoc    = '{$_POST['numero']}' ";
}
else{
  $p_sql="insert into inter02 values ( '{$_POST['empresa']}','RTO','{$_POST['letra']}','{$_POST['sucur']}','{$_POST['numero']}',
                                     '$p_cli','$p_dir',
                                     '{$_SESSION[$p_indice][$p_cual]['cod_provincia']}',
                                     '{$_SESSION[$p_indice][$p_cual]['provincia']}',
                                     '{$_SESSION[$p_indice][$p_cual]['cod_localidad']}',
                                     '{$_SESSION[$p_indice][$p_cual]['localidad']}',
                                     '{$_SESSION[$p_indice][$p_cual]['cod_postal']}',
                                     '{$_SESSION[$p_indice][$p_cual]['edificio']}','{$_SESSION[$p_indice][$p_cual]['nro_oc']}',
                                     '{$_SESSION[$p_indice][$p_cual]['cuit']}',
                                     '{$_SESSION[$p_indice][$p_cual]['valor_declarado']}','FAC',
                                     '{$_SESSION[$p_indice][$p_cual]['letra_fc']}',
                                     '{$_SESSION[$p_indice][$p_cual]['sucur_fc']}',
                                     '{$_SESSION[$p_indice][$p_cual]['numero_fc']}',
                                     '{$_SESSION[$p_indice][$p_cual]['turno']}',
                                     '{$_SESSION[$p_indice][$p_cual]['fecha_turno']}',
                                     '{$_SESSION[$p_indice][$p_cual]['hora_pactada']}',
                                     '{$_SESSION['UsuarioConectado']}','$p_fecha','$p_tel','$p_mail'
                                   ) ";
}
$Base->r_exec($p_sql,"inter02",1);
if ($Base->error != 0){
  $pa_return['error'] = "NOK";
  $pa_return['msg']   = "02- ".$Base->msg_error. $p_sql. " !! ";
}
else{
   $Base->r_end_trans();
   if ($Base->error != 0){
      $pa_return['error'] = "NOK";
      $pa_return['msg']   = "03- ".$Base->msg_error;
      r_salida();
   }
  $pa_return['msg'] = "Modificacion Confirmada !!! ";
}
    $_SESSION['empresa_login']=$_COOKIE['empresa_login'];
    $_SESSION['sector']=$_COOKIE['sector'];

    $data = base64_encode(gzcompress(json_encode($_SESSION), 9));
    $p_sql="insert into sessions_data values ('".$_COOKIE['::1_0']."', '".$data."') ";

    $Base->r_exec($p_sql,'',1);
//    var_dump($_SESSION);
    $_COOKIE = array();

    $p_sql="SELECT id FROM sessions_data WHERE id = IDENT_CURRENT('sessions_data')";
    $resultado=odbc_fetch_array(@odbc_exec($Base->conexion,$p_sql));
    setcookie('last_id', $resultado['id']);

r_salida();

}

function r_cambio_super()
{
global $Base,$pa_return,$p_fecha,$sql_rollback;

$p_empresa = $_POST['empresa'];
$p_indice = trim($_POST['indice']);
$p_cual   = $_POST['cual'];
$p_super  = trim($_POST['super']);

$_SESSION[$p_indice][$p_cual]['edificio'] = $p_super;
$p_cli = substr($_SESSION[$p_indice][$p_cual]['cliente'],0,40);
$p_dir = substr($_SESSION[$p_indice][$p_cual]['direccion'],0,50);
$p_tel = trim($_SESSION[$p_indice][$p_cual]['tel']);
$p_mail  = trim($_SESSION[$p_indice][$p_cual]['mail']);

$p_letra = $_SESSION[$p_indice][$p_cual]['letra'];
$p_sucur = $_SESSION[$p_indice][$p_cual]['sucur'];
$p_numero = $_SESSION[$p_indice][$p_cual]['numero'];

$Base->r_begin_trans();
if ($Base->error != 0 ){
   $pa_return['error'] = "NOK";
   $pa_return['msg']   = "04- ".$Base->msg_error;
   r_salida();
}
$sql_rollback = 'S';

$p_sql="select * from inter02 
    where empresa = '$p_empresa' 
      and tdoc    = 'RTO'
      and ldoc    = '$p_letra'
      and sdoc    = '$p_sucur'
      and ndoc    = '$p_numero' ";
$Base->r_select_fila($p_sql,"inter02");
if ($Base->error == 0){
   $p_sql="update inter02 set edificio  = '{$_SESSION[$p_indice][$p_cual]['edificio']}'
          where empresa = '$p_empresa' 
            and tdoc    = 'RTO'
            and ldoc    = '$p_letra'
            and sdoc    = '$p_sucur'
            and ndoc    = '$p_numero' ";
}
else{
   $p_sql="insert into inter02 values ( '$p_empresa','RTO','$p_letra','$p_sucur','$p_numero',
                                  '$p_cli','$p_dir',
                                  '{$_SESSION[$p_indice][$p_cual]['cod_provincia']}',
                                  '{$_SESSION[$p_indice][$p_cual]['provincia']}',
                                  '{$_SESSION[$p_indice][$p_cual]['cod_localidad']}',
                                  '{$_SESSION[$p_indice][$p_cual]['localidad']}',
                                  '{$_SESSION[$p_indice][$p_cual]['cod_postal']}',
                                  '{$_SESSION[$p_indice][$p_cual]['edificio']}','{$_SESSION[$p_indice][$p_cual]['nro_oc']}',
                                  '{$_SESSION[$p_indice][$p_cual]['cuit']}',
                                  '{$_SESSION[$p_indice][$p_cual]['valor_declarado']}','FAC',
                                  '{$_SESSION[$p_indice][$p_cual]['letra_fc']}',
                                  '{$_SESSION[$p_indice][$p_cual]['sucur_fc']}',
                                  '{$_SESSION[$p_indice][$p_cual]['numero_fc']}',
                                  '{$_SESSION[$p_indice][$p_cual]['turno']}',
                                  '{$_SESSION[$p_indice][$p_cual]['fecha_turno']}',
                                  '{$_SESSION[$p_indice][$p_cual]['hora_pactada']}',
                                  '{$_SESSION['UsuarioConectado']}','$p_fecha','$p_tel','$p_mail'
                                ) ";
}
$Base->r_exec($p_sql,"inter02",1);
if ($Base->error != 0){
   $pa_return['error'] = "NOK";
   $pa_return['msg']   = "05- ".$Base->msg_error. $p_sql. " !! ";
   r_salida();
}
$Base->r_end_trans();
if ($Base->error != 0){
   $pa_return['error'] = "NOK";
   $pa_return['msg']   = "06- ".$Base->msg_error;
   r_salida();
}
r_salida();

}

function r_guardar_remitos()
{
global $Base,$pa_return,$p_fecha,$p_fecha_corta,$sql_rollback;

$sql_rollback = "S";

$p_empresa = $_POST['empresa'];
$p_fc_concepto = $_POST['fc_concepto'];
$p_indice  = $_POST['indice'];
$p_fecha_ing = $_POST['fecha_ing'];

$Empresa = new Empresa($p_empresa);
$Empresa->conexion = $Base->conexion;
$Empresa->tipo_base = $Base->tipo_base;
$Empresa->r_select_empresa();
if ($Empresa->error != 0){
   $pa_return['error'] = "NOK";
   $pa_return['msg']   = "100- Error. No se pudo leer [empresa] !!";
   r_salida();
}
$Empresa->concepto = $p_fc_concepto;
$Empresa->r_select_fc_empresa();
if ($Empresa->error != 0 ){
   if ($Empresa->empresa != 12){
      $pa_return['error'] = "NOK";
      $pa_return['msg']   = "101- Error. No se pudo leer [fc_empresa] !!";
      r_salida();
   }
}
$p_tdoc = 'RTO';
if ($Empresa->pedido_remito == 'P'){
    $p_tdoc = 'PED';
}

//$Base->r_begin_trans();
//var_dump($Base->error);die();
if ($Base->error != 0){
  $pa_return['error'] = "NOK";
  $pa_return['msg']   = "102- Error. Begin work !!";
  r_salida();
}
$p_archivo = $_POST['indice'];

$_SESSION['ABMRemitos_inter']=array();
$p_can = 0;
$p_bultos_total =0;
foreach( $_POST['pa_rem']  as $p_i=>$p_rem ){

  $p_ind = $p_rem['indice'];

  $Pdcabe = new Pdcabe($Empresa->empresa,$p_tdoc,$_SESSION[$p_archivo][$p_ind]['letra'],
                       $_SESSION[$p_archivo][$p_ind]['sucur'],$_SESSION[$p_archivo][$p_ind]['numero']);
  $Pdcabe->conexion    = $Base->conexion;
  $Pdcabe->tipo_base   = $Base->tipo_base;

  if ($Pdcabe->letra == 'Z'){
      $pa_return['error'] = "NOK";
      $pa_return['msg']   = "103- Error. Letra remito inhabilitadas !! ";
      break;
  }
  $Pdcabe->nro_factura = $_SESSION[$p_archivo][$p_ind]['numero_fc'];
  $Pdcabe->usuario     = $_SESSION['UsuarioConectado'];
  $Pdcabe->fecha_ing   = date("d-m-Y",strtotime($_POST['fecha_ing']));
  $Pdcabe->fecha_proc  = $p_fecha;
  $Pdcabe->habilita_hr = 'S';
  $Pdcabe->espera_acceso = 'N';
  $Pdcabe->fc_concepto   = $Empresa->concepto;
  $Pdcabe->mail          = $_SESSION[$p_archivo][$p_ind]['mail'];
  $Pdcabe->cuit          = $_SESSION[$p_archivo][$p_ind]['cuit'];
  $Pdcabe->tel           = $_SESSION[$p_archivo][$p_ind]['tel'];
  $Pdcabe->tipo_rm       = $_SESSION[$p_archivo][$p_ind]['tipo_rm'];
  $Pdcabe->r_veo_tipo_pedido();
  if ($Pdcabe->error != 0 ){
      $pa_return['error'] = "NOK";
      $pa_return['msg']   = "104- ".$Pdcabe->msg_error;
      break;
  }

//  var_dump($_SESSION[$p_archivo]);die();
  $p_sql = "select * from provincia  
           where pais = '200' 
             and provincia = '{$_SESSION[$p_archivo][$p_ind]['cod_provincia']}' ";
			   var_dump($_SESSION);die();

  $Base->r_select_fila($p_sql,"provincia");
  if ($Base->error != 0){
    $pa_return['error'] = "NOK";
    $pa_return['msg']   = "105- Error. No se pudo leer [provincia] !!";
    break;
  }
  $Pdcabe->d_provincia   = trim($Base->row['denominacion']);

  $p_sql = "select * from localidad 
           where pais = '200' 
             and provincia = '{$_SESSION[$p_archivo][$p_ind]['cod_provincia']}' 
             and localidad = '{$_SESSION[$p_archivo][$p_ind]['cod_localidad']}'
             and localidad not in ('.')";
  $Base->r_select_fila($p_sql,"localidad");
  if ($Base->error != 0){
    $pa_return['error'] = "NOK";
    $pa_return['msg']   = "106- Error. No se pudo leer [localidad] !! ".$Pdcabe->numero;
    break;
  }
  $Pdcabe->interior      = $Base->row['interior'];
  $Pdcabe->d_localidad   = trim($Base->row['denominacion']);

  $p_cliente   = utf8_decode(GLSA::eliminar_simbolos(trim(strtoupper($_SESSION[$p_archivo][$p_ind]['cliente']))));
  $p_direccion = utf8_decode(GLSA::eliminar_simbolos(trim(strtoupper($_SESSION[$p_archivo][$p_ind]['direccion']))));
  $p_codigo_cliente=r_veo_codigo_cliente($_POST['empresa'],$p_cliente,$p_direccion,
                                         $_SESSION[$p_archivo][$p_ind]['cod_localidad'],
                                         $_SESSION[$p_archivo][$p_ind]['cod_provincia'],
                                         $_SESSION[$p_archivo][$p_ind]['cod_postal'],"200");

  if ($p_codigo_cliente == 0){ // es un alta
     $p_codigo_cliente=r_inserto_codigo_cliente($_POST['empresa'],$p_cliente,$p_direccion,
                                         $_SESSION[$p_archivo][$p_ind]['cod_localidad'],
                                         $_SESSION[$p_archivo][$p_ind]['cod_provincia'],
                                         $_SESSION[$p_archivo][$p_ind]['cod_postal'],"200",
                                         $_SESSION[$p_archivo][$p_ind]['codigo_cliente'],
                                         $Pdcabe->cuit, $Pdcabe->mail,$Pdcabe->tel );
  }
  if ($p_codigo_cliente == 0){
    $pa_return['error'] = "NOK";
    $pa_return['msg']   = "107- Error. No se pudo leer [clientes_emp] !!";
    break;
  }
  $Pdcabe->codigo_cliente = $p_codigo_cliente;
  // Para ped_ccr
  $Pdcabe->d_cod_cliente = $_SESSION[$p_archivo][$p_ind]['codigo_cliente'];
  $Pdcabe->d_cliente     = $p_cliente;
  $Pdcabe->d_direccion   = $p_direccion;
  $Pdcabe->d_cod_postal  = $_SESSION[$p_archivo][$p_ind]['cod_postal'];

  $p_cliente_final   = utf8_decode(GLSA::eliminar_simbolos(trim(strtoupper($_SESSION[$p_archivo][$p_ind]['cliente_fc']))));
  $p_direccion_final = utf8_decode(GLSA::eliminar_simbolos(trim(strtoupper($_SESSION[$p_archivo][$p_ind]['direccion_fc']))));

  $p_codigo_cliente_final = r_veo_codigo_cliente($_POST['empresa'],$p_cliente_final,$p_direccion_final,
                                                 $_SESSION[$p_archivo][$p_ind]['cod_localidad_fc'],
                                                 $_SESSION[$p_archivo][$p_ind]['cod_provincia_fc'],
                                                 $_SESSION[$p_archivo][$p_ind]['cod_postal_fc'],"200");
  if ($p_codigo_cliente_final == 0){ // es un alta
     $p_codigo_cliente_final = r_inserto_codigo_cliente($_POST['empresa'],$p_cliente_final,$p_direccion_final,
                                                        $_SESSION[$p_archivo][$p_ind]['cod_localidad_fc'],
                                                        $_SESSION[$p_archivo][$p_ind]['cod_provincia_fc'],
                                                        $_SESSION[$p_archivo][$p_ind]['cod_postal_fc'],"200",
                                                        $_SESSION[$p_archivo][$p_ind]['codigo_cliente'],
                                                        $Pdcabe->cuit, $Pdcabe->mail, $Pdcabe->tel);
  }
  if ($p_codigo_cliente_final == 0){
    $pa_return['error'] = "NOK";
    $pa_return['msg']   = "108- Error. No se pudo leer [clientes_emp] !!";
    break;
  }
  $Pdcabe->codigo_cliente_final = $p_codigo_cliente_final;
  $Pdcabe->cliente              = trim($p_cliente);
  $Pdcabe->direccion            = trim($p_direccion);

  $Pdcabe->sucursal_cliente = 0;
  $Pdcabe->vendedor       = trim($_SESSION[$p_archivo][$p_ind]['vendedor']);
  //$Pdcabe->fc_concepto    = $_SESSION[$p_archivo][$p_ind]['fc_concepto'];
  $Pdcabe->nro_oc         = trim($_SESSION[$p_archivo][$p_ind]['nro_oc']);
  $Pdcabe->hoja_ruta_ext  = "0";
  $Pdcabe->fecha_doc      = $_SESSION[$p_archivo][$p_ind]['fecha'];
  $Pdcabe->fecha_disp     = "19000101";
  $Pdcabe->fecha_difer    = "19000101";
  $Pdcabe->fecha_ini_comp = "19000101";
  $Pdcabe->fecha_prev_ent = "19000101";
  $Pdcabe->fecha_conf_ent = "19000101";
  $Pdcabe->fecha_difer_cliente = "19000101";
  $Pdcabe->fecha_entrega = "19000101";

  $Pdcabe->tte           = " ";
  if ($Pdcabe->interior == 'I'){
    $p_cliente_trans = "0";
    $p_sql="select cliente from transp
           where estado    = 1 
             and provincia = '{$_SESSION[$p_archivo][$p_ind]['cod_provincia']}'
             and localidad = '{$_SESSION[$p_archivo][$p_ind]['cod_localidad']}'
             and cliente   like '%".$p_cliente."%' ";
    $Base->r_select_fila($p_sql,"transp");
    if ($Base->error == 0){
      $p_cliente_trans = trim($Base->row['cliente']);
    }  
    $p_sql="select cod_prop from transp
          where estado    = 1 
            and provincia = '{$_SESSION[$p_archivo][$p_ind]['cod_provincia']}'
            and localidad = '{$_SESSION[$p_archivo][$p_ind]['cod_localidad']}'
            and cliente   = '$p_cliente_trans' ";
    $Base->r_select_fila($p_sql,"transp");
    if ($Base->error == 0){
      $Pdcabe->tte = $Base->row['cod_prop'];
    }
  }
  // No vino en la interface
  if ($Pdcabe->fc_concepto != 31){
     if ($Pdcabe->interior == 'I'){
        $Pdcabe->fc_concepto = 3;
     }
     else{
        $Pdcabe->fc_concepto = 2;
     }
  }
  if(isset($_SESSION[$p_archivo][$p_ind]['sector'])){
      $Pdcabe->sector    = $_SESSION[$p_archivo][$p_ind]['sector'];
  }
  $Pdcabe->espera        = $_SESSION[$p_archivo][$p_ind]['espera'];
  $Pdcabe->espera_logistica = $_SESSION[$p_archivo][$p_ind]['espera_logistica'];
  $Pdcabe->contado       = $_SESSION[$p_archivo][$p_ind]['contado'];
  $Pdcabe->retira        = $_SESSION[$p_archivo][$p_ind]['retira'];
  $Pdcabe->turno         = $_SESSION[$p_archivo][$p_ind]['turno'];
  $Pdcabe->fecha_pedido_turno = "";
  $Pdcabe->fecha_turno   = "";
  if (strlen($_SESSION[$p_archivo][$p_ind]['fecha_turno']) > 0){
    $Pdcabe->fecha_turno   = date("d-m-Y",strtotime($_SESSION[$p_archivo][$p_ind]['fecha_turno']));
    $Pdcabe->fecha_pedido_turno = $Pdcabe->fecha_turno;
    $Pdcabe->fecha_difer   = $Pdcabe->fecha_turno;
  }
  $Pdcabe->valor_declarado = $_SESSION[$p_archivo][$p_ind]['valor_declarado'];
  $Pdcabe->edificio      = $_SESSION[$p_archivo][$p_ind]['edificio'];
  $Pdcabe->obser         = "";
  $Pdcabe->etiquetado    = "N";
  $Pdcabe->hora_pactada  = $_SESSION[$p_archivo][$p_ind]['hora_pactada'];
  $Pdcabe->hora_pactada  = substr($Pdcabe->hora_pactada,0,5);
  $Pdcabe->hora_entrega  = "";
  if ( date("Y",strtotime($Pdcabe->fecha_doc)) < 2000 ) {
     $pa_return['error'] = "NOK";
     $pa_return['msg']   = "109- Error. Problemas con la fecha del documento !! ".$Pdcabe->numero.$Pdcabe->fecha_doc;
     break;
  }

  $Pdcabe->r_insert_cab();
  if ($Pdcabe->error != 0){
    $pa_return['error'] = "NOK";
    $pa_return['msg']   = "110- ".$Pdcabe->msg_error." - ".$Pdcabe->numero;
    break;
  }

  $Pdcabe->o_obser    = trim($_SESSION[$p_archivo][$p_ind]['obser']);
  $Pdcabe->o_obser_gl = "";
  if (strlen($Pdcabe->o_obser > 0 )){
    $Pdcabe->r_insert_pdcabe_obser();
    if ($Pdcabe->error != 0){
      $pa_return['error'] = "NOK";
      $pa_return['msg']   = "111- ".$Pdcabe->msg_error;
      break;
    }
  }

  if (!isset($_SESSION[$p_archivo][$p_inf]['cpbante_cot'])){
    $p_cpbante_cot = 'R';
  }
  else{
    $p_cpbante_cot = $_SESSION[$p_archivo][$p_ind]['cpbante_cot'];    
  }
  $p_cuit_aux = trim($_SESSION[$p_archivo][$p_ind]['cuit']);
  $p_cuit_aux = str_replace("-",'',$p_cuit_aux);
  $p_cliente_final2 = substr($p_cliente_final,0,30);
  $p_sql="insert into ing_ped values ( '{$Pdcabe->empresa}','{$Pdcabe->sucur}','{$Pdcabe->numero}',
                                     'I','FAC','{$_SESSION[$p_archivo][$p_ind]['letra_fc']}',
                                     '{$_SESSION[$p_archivo][$p_ind]['sucur_fc']}',
                                     '{$Pdcabe->nro_factura}',
                                     '$p_cuit_aux','{$Pdcabe->valor_declarado}',
                                     '{$_SESSION['UsuarioConectado']}','$p_fecha','N',
                                     '{$Pdcabe->letra}','0','$p_cliente_final2','19000101','R')";
  $Base->r_exec($p_sql,"ing_ped",1);
  if ($Base->error != 0){
    $pa_return['error'] = "NOK";
    $pa_return['msg']   = "112- ".$Base->msg_error. $p_sql;
    break;
  }
  /*
  if p_reg_aux.concepto = 24 then
          let p_pd_conceptos.concepto = p_reg_aux.concepto
          insert into pdcabe_conceptos values ( p_pd_conceptos.* )
          if status <> 0 or sqlca.sqlerrd[3] <> 1 then
             let err = "E14"
             let msg = "No se pudo actualizar [pdcabe_conceptos]"
             let p_cancel = true
             exit foreach
          end if
  end if
*/
  //$p_obser_3="T01|N|    |A|web     |00:00:00";
  $Pdcabe->d_secuencia = 1;
  $p_contenido         = '';

  foreach ( $_SESSION[$p_archivo][$p_ind]['detalle'] as $p_j=>$p_deta){

    $Pdcabe->bultos  = $Pdcabe->bultos   + $p_deta['bultos'];
    $Pdcabe->unidades= $Pdcabe->unidades + $p_deta['unidades'];
    $Pdcabe->volumen = $Pdcabe->volumen  + $p_deta['volumen'];
    $Pdcabe->otros   = $Pdcabe->otros    + $p_deta['otros'];

    if (empty($p_deta['articulo']) || empty($p_deta['bultos']) ){
      break;
    }
    if( $p_deta['bultos'] == 0 ){
      continue;
    }
    $p_sql="select * from ub_concepto_empresa
           where empresa = '{$_POST['empresa']}'
             and concepto = '{$p_deta['concepto']}'
             and estado   = 1";
    $Base->r_select_fila($p_sql);
    if ($Base->error != 0){
      $pa_return['error'] = "NOK";
      $pa_return['msg']   = "114- Error. No se pudo leer [ub_concepto_empresa] !!".$p_deta['concepto'];
      break;
    }
    $p_arti = strtoupper(rtrim($p_deta['articulo']));

    $Articulo = new Articulo($_POST['empresa'],$p_arti);
    $Articulo->conexion = $Base->conexion;

    $Articulo->r_select_articulo();
    if ($Articulo->error != 0){
       $pa_return['error'] = "NOK";
       $pa_return['msg']   = "115- ".$Articulo->msg_error." - ".$Articulo->articulo;
       break;
    }
    $p_nro_lote = trim($p_deta['nro_lote']);
    if (strlen($p_nro_lote) <= 0){
       $p_nro_lote = '0';
    }
    $Pdcabe->d_articulo = $Articulo->articulo;
    $Pdcabe->d_nro_lote = $p_nro_lote;
    $Pdcabe->d_serie    = trim($p_deta['serie']);
    $Pdcabe->d_bultos   = $p_deta['bultos'];
    $Pdcabe->d_unidades = $p_deta['unidades'];
    $Pdcabe->d_volumen  = $p_deta['volumen'];
    $Pdcabe->d_otros    = $p_deta['otros'];
    $Pdcabe->d_concepto = $p_deta['concepto'];
    $Pdcabe->d_fecha_p_ent = $Pdcabe->fecha_ing;
    $Pdcabe->d_precio   = 0;
    //if ($Pdcabe->empresa == 12){
    //    $Pdcabe->nro_oc = $p_deta['nro_oc'];
    //}
    if ( strlen($Pdcabe->fecha_difer) > 0 && date("Y",strtotime($Pdcabe->fecha_difer)) > 1969 ){
        $Pdcabe->d_fecha_p_ent = $Pdcabe->fecha_difer;
    }
    $Pdcabe->r_insert_ped_ccr();
    if ($Pdcabe->error != 0){
       $pa_return['error'] = "NOK";
       $pa_return['msg']   = "116- ".$Pdcabe->msg_error." - ".$Pdcabe->numero;
       break;
    }

    $p_contenido .= $Pdcabe->d_bultos . "  ". $Articulo->descripcion;

    $Pdcabe->d_secuencia ++;
    $p_i++;
  } // fin foreach detalle

  if ($pa_return['error'] != 'OK' ){
    break;
  }

  $Pdcabe->volumen = sprintf("%0.6f",$Pdcabe->volumen);
  $Pdcabe->otros = sprintf("%0.6f",$Pdcabe->otros);
  if ($Pdcabe->tipo_pedido == 'E'  ){
     $Pdcabe->fecha_prev_ent = $Pdcabe->fecha_turno;
  }
  if ($Pdcabe->bultos <= 0 ){
     $pa_return['error'] = "NOK";
     $pa_return['msg']   = "117- Error. Remito ".$Pdcabe->numero." con bultos en 0 !! ";
     break;
  }
  $Pdcabe->r_update_pdcabe();
  if ($Pdcabe->error != 0){
    $pa_return['error'] = "NOK";
    $pa_return['msg']   = "118- ".$Pdcabe->msg_error. $Pdcabe->numero;
    break;
  }
  $Pdcabe->r_insert_pdcabe_obser();
  if ($Pdcabe->error != 0){
    $pa_return['error'] = "NOK";
    $pa_return['msg']   = "119- ".$Pdcabe->msg_error;
    break;
  }

  $p_a=r_rem_cab("A",1,$Pdcabe->empresa,$Pdcabe->tdoc,$Pdcabe->letra,$Pdcabe->sucur,$Pdcabe->numero,0);
  if ($p_a['error'] != 'OK'){
      $pa_return['error'] = "NOK";
      $pa_return['msg']   = '120- '.$p_a['msg'];
      break;
  }

  //if ($Pdcabe->tipo_pedido == 'E' || $Pdcabe->fc_concepto == 31 ){
  if ($Pdcabe->usa_trackeo == 'S'  ){
     $Pdcabe->st_operacion = 'I';
     $Pdcabe->st_contenido = $p_contenido;
     $Pdcabe->fecha_prev_ent = $p_fecha_ing ; //r_fecha_habil_siguiente($p_fecha_ing);
     $Pdcabe->st_titulo = 'Aún no hemos recibido su envío de '.trim(r_empresa_des($Pdcabe->empresa));
     $Pdcabe->st_nota   = '';
     $Pdcabe->st_mail_comprador = $Pdcabe->mail;
     if ($Base->tipo_base != 'S'){
         $Pdcabe->r_ins_sigtrack_test();
     }
     else{
         $Pdcabe->r_ins_sigtrack();
     }
     if($Pdcabe->error != 0){
        $pa_return['error'] = "NOK";
        $pa_return['msg']   = '121-'. $Pdcabe->msg_error;
        break;
     }
     $Pdcabe->r_update_pdcabe_tracking();
     if($Pdcabe->error != 0){
         $pa_return['error'] = "NOK";
         $pa_return['msg']   = '122-'. $Pdcabe->msg_error;
         break;
     }
     $p_a=r_rem_cab('M',32,$Pdcabe->empresa,$Pdcabe->tdoc,$Pdcabe->letra,$Pdcabe->sucur,$Pdcabe->numero,0);
     if ($p_a['error'] != 'OK'){
         $pa_return['error'] = "NOK";
         $pa_return['msg']   = '123-'. $p_a['msg'];
         break;
     }

  }
   ////////
  $_SESSION['ABMRemitos_inter'][$p_can]['letra']  = $Pdcabe->letra;
  $_SESSION['ABMRemitos_inter'][$p_can]['sucur']  = $Pdcabe->sucur;
  $_SESSION['ABMRemitos_inter'][$p_can]['numero'] = $Pdcabe->numero;

  if($Pdcabe->nro_oc == '0')$p_bultos_total += $Pdcabe->bultos;

  $p_can++;
}

if ($pa_return['error'] != 'OK' ){
  r_salida();
}

if($Pdcabe->empresa == 233){

    if($p_bultos_total != 0) {
        $p_nrodoc    = r_numeracion(233,'XX','PLD');

        $stock_dep = new Stock_dep(233,'T4');
        $stock_dep->conexion = $Base->conexion;

        $stock_dep->usuario = $_SESSION['UsuarioConectado'];
        $stock_dep->fecha = date('Ymd');
        $stock_dep->fecha_proc = date('Ymd H:i:s');
        $stock_dep->tdoc   = 'PLD';
        $stock_dep->nrodoc = $p_nrodoc;
        $stock_dep->letdoc = 'X';
        $stock_dep->sucdoc = '0';
        $stock_dep->signo = '+';
        $stock_dep->area     = 910;
        $stock_dep->articulo = $Articulo->articulo;
        $stock_dep->calle    = '0';
        $stock_dep->rack     = '0';
        $stock_dep->pos      = '1';
        $stock_dep->nro_pallet = '0';
        $stock_dep->nro_lote   = '0';
        $stock_dep->estado   = 'C';
        $stock_dep->serie    = '0';

        $stock_dep->bultos = $p_bultos_total;
        $stock_dep->unidades = $Articulo->upb * $p_bultos_total;
        $stock_dep->volumen  = $Articulo->volumen_art * $p_bultos_total;
        $stock_dep->otros    = $Articulo->peso_art * $p_bultos_total;

        $stock_dep->r_upd_stock_dep_mas();
        if($stock_dep->error != 0){
            $pa_return['error'] = 'NOK';
            $pa_return['msg']   = '150- '.$stock_dep->msg_error;
            r_salida();
        }

        $stock = new Stock(233,1,910,'CAJA',0);
        $stock->conexion = $Base->conexion;

        $stock->usuario = $_SESSION['UsuarioConectado'];
        $stock->fecha = date('Ymd');
        $stock->fecha_proc = date('Ymd H:i:s');
        $stock->tdoc   = 'PLD';
        $stock->nrodoc = $p_nrodoc;
        $stock->sucdoc = 0;
        $stock->letdoc = 'X';
        $stock->signo ='+';
        $stock->estado = 'C';
        $stock->bultos = $p_bultos_total;
        $stock->unidades = $Articulo->upb * $p_bultos_total;
        $stock->volumen  = $Articulo->volumen_art * $p_bultos_total;
        $stock->otros    = $Articulo->peso_art * $p_bultos_total;
        $stock->r_upd_stock_mas();
        if($stock->error != 0){
            $pa_return['error'] = 'NOK';
            $pa_return['msg']   = '151- '.$stock->msg_error;
            r_salida();
        }
    }

    else{}

}

$p_indice = trim($_POST['indice']);
//$Base->r_end_trans();
if ($Base->error != 0 ){
   $pa_return['error'] = 'NOK';
   $pa_return['msg']   = '124- Error. No se pudo hacer commit !! ';
   r_salida();
}
$sql_rollback = 'N';
$pa_return['error'] = "OK";
$pa_return['msg']   = "Remitos Confirmados !!!";
unset($_SESSION[$p_indice]);
r_salida();

}

function r_lee_localidad()
{

global $Base;

$pa_loc['error']="";

$pa=array();
$p_sql="select a.localidad,a.denominacion from localidad a, provincia b
       where a.pais      = b.pais 
         and a.provincia = b.provincia
         and a.pais      = '{$_POST['pais']}' 
         and a.provincia = '{$_POST['provincia']}' 
         order by 2";
$resultado=@odbc_exec($Base->conexion, $p_sql);
if (!$resultado){
  $pa[] = array('codigo'=>0,'msg'=>"No hay loc para la provincia"); 
}
else{
  $p_can=0;
  while($fila=odbc_fetch_array($resultado)) {
    $p_descripcion = GLSA::eliminar_simbolos(trim(htmlentities($fila['denominacion'],ENT_SUBSTITUTE)));
    $p_can++;
    $pa[] = array('codigo'=>trim($fila['localidad']),'msg'=>$p_descripcion); 
  }
  if ($p_can <= 0 ) {
    $pa[] = array('codigo'=>0,'msg'=>"No hay loc para la provincia"); 
  }
}
$pa_loc['loc']=$pa;

header("Content-type:application/json");
echo json_encode($pa_loc);     

}


function r_lee_cod_postal()
{
global $Base;

$pa_cp['error'] = 'NOK';
$p_sql="select cod_postal from codigo_postal
       where pais = '{$_POST['pais']}'
         and provincia = '{$_POST['provincia']}'
         and localidad = '{$_POST['localidad']}' ";
$Base->r_select_fila($p_sql,"codigo_postal");
if ($Base->error == 0){
   $pa_cp['error'] = 'OK';
   $pa_cp['cod_postal'] = trim($Base->row['cod_postal']);
}
header("Content-type:application/json");
echo json_encode($pa_cp);

}


function r_salida()
{
global $Base,$pa_return,$sql_rollback;

if (  $sql_rollback == 'S' ){
   $Base->r_rollback_trans();
}

header("Content-type:application/json");
echo json_encode($pa_return);
die();
}


?>