예제 #1
0
 public function postEditcomision()
 {
     $comision = VistaComision::find(Input::get('venta_id'));
     $precio_producto = Precio::where('producto_id', '=', Input::get('producto_id'))->firstorFail();
     //si el porentaje es igual al anterior, no hacer nada
     $comision_update = Comision::find($comision->id);
     if ($comision->porcentaje != Input::get('porcentaje')) {
         //determina si el producto es de tipo servicio funeral para sacar el monto comisionable de ese producto
         $servicio = VistaServicioFuneral::find($comision->producto_id);
         if (count($servicio) > 0) {
             $serv = VistaServicioFuneral::find($ervicio->producto_id);
             $total_comision = $serv->monto_comisionable * (Input::get('porcentaje') / 100);
         } else {
             $total_comision = $precio_producto->monto * (Input::get('porcentaje') / 100);
         }
         $comision_update->porcentaje = Input::get('porcentaje');
         $comision_update->total = $total_comision;
         $comision_update->total_comisionable = $total_comision;
         if ($total_comision - $comision->pagado <= 0) {
             $comision_update->pagada = 1;
         }
     }
     if ($comision->observaciones != Input::get('observaciones_comision')) {
         # code...
         $comision_update->observaciones = Input::get('observaciones_comision');
     }
     $comision_update->save();
     return Redirect::back();
 }
 public function saveEdit4($id)
 {
     $nuevo_precio = Input::get('precio');
     $precio = Precio::find($id);
     $precio->precio_mzt_dls = $nuevo_precio;
     $precio->save();
     return Redirect::to('precios');
 }
예제 #3
0
 public function postProductocombo()
 {
     $producto_combo = new Producto();
     $producto_combo->nombre = Input::get('nombre_producto_c');
     $producto_combo->departamento_id = Input::get('departamento_id_producto');
     $producto_combo->servicio = Input::get('tipo_producto');
     $producto_combo->porcentaje_comision = Input::get('porcentaje_comision_producto');
     $producto_combo->porcentaje_minimo_comisionable = Input::get('porcentaje_minimo_comisionable_producto');
     $producto_combo->combo = 1;
     $producto_combo->save();
     $precio_producto = new Precio();
     $precio_producto->producto_id = $producto_combo->id;
     $precio_producto->monto = Input::get('monto_producto') / 1.16;
     $precio_producto->save();
     return Redirect::back()->with('status', 'producto_created')->with('tab', 'tab3')->with('registro', 'edit_tab3');
 }
예제 #4
0
    ?>
</td>
                                <td class="center vertical-center"><?php 
    echo $objBeneficio->dsctoUnid;
    ?>
%</td>
                                <td class="center vertical-center"><?php 
    echo $objBeneficio->dsctoFrac;
    ?>
%</td>
                                <td class="center vertical-center"><?php 
    echo Yii::app()->numberFormatter->format(Yii::app()->params->formatoMoneda['patron'], Precio::redondear($objItem->precioBaseUnidad * $objBeneficio->dsctoUnid / 100, 1), Yii::app()->params->formatoMoneda['moneda']);
    ?>
</td>
                                <td class="center vertical-center"><?php 
    echo Yii::app()->numberFormatter->format(Yii::app()->params->formatoMoneda['patron'], Precio::redondear($objItem->precioBaseFraccion * $objBeneficio->dsctoFrac / 100, 1), Yii::app()->params->formatoMoneda['moneda']);
    ?>
</td>
                             <!--   <td class="center vertical-center"><?php 
    echo $objBeneficio->nitProv;
    ?>
</td>
                                <td class="center vertical-center"><?php 
    echo $objBeneficio->promoFiel;
    ?>
</td> -->
                                <td class="center vertical-center"><?php 
    echo Yii::app()->params->beneficios['swobligaCli'][$objBeneficio->swobligaCli];
    ?>
</td>
                            </tr>
예제 #5
0
 public function actualizarFracciones($cantidad)
 {
     $cantDiff = $cantidad - $this->fracciones;
     //igual
     if ($cantDiff == 0) {
         echo CJSON::encode(array('result' => 'error', 'response' => 'Actualización exitosa.'));
         Yii::app()->end();
     }
     //aumentar
     if ($cantDiff > 0) {
         $objProducto = Producto::model()->find(array('with' => array('listSaldos' => array('condition' => '(listSaldos.saldoFraccion>:saldo AND listSaldos.codigoCiudad=:ciudad AND listSaldos.codigoSector=:sector) OR (listSaldos.saldoFraccion IS NULL AND listSaldos.codigoCiudad IS NULL AND listSaldos.codigoSector IS NULL)'), 'listPrecios' => array('condition' => '(listPrecios.codigoCiudad=:ciudad AND listPrecios.codigoSector=:sector) OR (listPrecios.codigoCiudad IS NULL AND listPrecios.codigoSector IS NULL)'), 'listSaldosTerceros' => array('condition' => '(listSaldosTerceros.codigoCiudad=:ciudad AND listSaldosTerceros.codigoSector=:sector) OR (listSaldosTerceros.codigoCiudad IS NULL AND listSaldosTerceros.codigoSector IS NULL)')), 'condition' => 't.activo=:activo AND t.codigoProducto=:codigo AND ( (listSaldos.saldoUnidad IS NOT NULL AND listPrecios.codigoCiudad IS NOT NULL) OR listSaldosTerceros.codigoCiudad IS NOT NULL)', 'params' => array(':activo' => 1, ':codigo' => $this->codigoProducto, ':saldo' => 0, ':ciudad' => $this->objCompra->codigoCiudad, ':sector' => $this->objCompra->codigoSector)));
         if ($objProducto === null) {
             throw new Exception('Producto no disponible.');
         }
         $objSaldo = $objProducto->getSaldo($this->objCompra->codigoCiudad, $this->objCompra->codigoSector);
         if ($objSaldo === null) {
             throw new Exception("La cantidad solicitada no está disponible en este momento. No hay unidades disponibles");
         }
         if ($cantDiff > $objSaldo->saldoFraccion) {
             throw new Exception("La cantidad solicitada no está disponible en este momento. Saldos disponibles: {$objSaldo->saldoFraccion} fracciones");
         }
     }
     $precioTotal = $this->precioBaseFraccion - $this->descuentoFraccion;
     $precioDiff = $precioTotal * $cantDiff;
     $this->fracciones += $cantDiff;
     $this->precioTotalFraccion += $precioDiff;
     $this->idEstadoItem = Yii::app()->params->callcenter['estadoItem']['estado']['modificado'];
     $this->idOperador = Yii::app()->controller->module->user->id;
     $objCompra = $this->objCompra;
     $objCompra->subtotalCompra += $precioDiff;
     $objCompra->impuestosCompra += round(Precio::calcularImpuesto($precioDiff, $this->objImpuesto->porcentaje));
     $objCompra->baseImpuestosCompra += round(Precio::calcularBaseImpuesto($precioDiff, $this->objImpuesto->porcentaje));
     $objCompra->totalCompra += $precioDiff;
     if ($this->unidades + $this->fracciones == 0) {
         $objCompra->flete -= $this->flete;
     }
     $transaction = Yii::app()->db->beginTransaction();
     if (!$this->save()) {
         try {
             $transaction->rollBack();
         } catch (Exception $txexc) {
             Yii::log($txexc->getMessage() . "\n" . $txexc->getTraceAsString(), CLogger::LEVEL_ERROR, 'application');
         }
         throw new Exception('Error de actualización item: ' . $this->validateErrorsResponse());
     }
     if ($objCompra->totalCompra < 0) {
         try {
             $transaction->rollBack();
         } catch (Exception $txexc) {
             Yii::log($txexc->getMessage() . "\n" . $txexc->getTraceAsString(), CLogger::LEVEL_ERROR, 'application');
         }
         throw new Exception('Total compra no puede ser negativo');
     }
     if (!$objCompra->save()) {
         try {
             $transaction->rollBack();
         } catch (Exception $txexc) {
             Yii::log($txexc->getMessage() . "\n" . $txexc->getTraceAsString(), CLogger::LEVEL_ERROR, 'application');
         }
         throw new Exception('Error de actualización compra: ' . $objCompra->validateErrorsResponse());
     }
     $transaction->commit();
 }
 public function metabolic()
 {
     $precio = Precio::metabolic()->get();
     return View::make('front.metabolic')->with(compact('precio'));
 }
예제 #7
0
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($idPrecio)
 {
     $precio = Precio::find($idPrecio);
     $precio->delete();
     return Response::json(array('error' => false, 'message' => 'Precio eliminado'), 200);
 }
예제 #8
0
 public function actionPrecio()
 {
     $precio = 107.5;
     echo "modulo: " . $precio % 50;
     echo "<br>";
     $precio = Precio::redondear($precio, 0);
     echo $precio;
 }
예제 #9
0
 public function getBaseTaxPrice($total = false)
 {
     $base = 0.0;
     if ($total) {
         $base = Precio::calcularBaseImpuesto($this->getPrice(true) * $this->quantityFraction, $this->tax) + Precio::calcularBaseImpuesto($this->getPrice() * ($this->quantityUnit + $this->quantityStored), $this->tax);
     } else {
         $base = Precio::calcularBaseImpuesto($this->getPrice(), $this->tax);
     }
     return round($base);
 }
 public function postRenovacion()
 {
     $precio = Precio::where('producto_id', Input::get('producto_id'))->where('activo', 1)->firstorfail();
     $mtto_detalle = VistaDetalleMantenimiento::find(Input::get('id'));
     $mtto_catalogo = Mantenimiento::where('producto_id', Input::get('producto_id'))->firstorfail();
     //para obtener los meses a sumar en el mantenimiento renovado
     $vencimiento_actual = $mtto_detalle->fecha_fin;
     $vencimiento_actual_carbon = Carbon::parse($vencimiento_actual);
     //validar formulario
     $rules = array('forma_pago' => 'required');
     if (Input::get('valor_efectivo') == 1 and Input::has('efectivo')) {
         $rules['efectivo'] = 'required|numeric|integer';
     }
     if (Input::get('valor_credito') == 1 and Input::has('credito')) {
         $rules['credito'] = 'required|numeric|integer';
     }
     if (Input::get('valor_debito') == 1 and Input::has('debito')) {
         $rules['debito'] = 'required|numeric|integer';
     }
     $messages = array('required' => 'Capture :attribute', 'numeric' => 'solo números', 'integer' => 'solo se aceptan valores enteros');
     $validator = Validator::make(Input::all(), $rules, $messages);
     if ($validator->fails()) {
         return Redirect::back()->withInput()->withErrors($validator);
     }
     //mantenimiento vencido toma la fecha de hoy
     if ($mtto_detalle->vencido == 1 and $mtto_detalle->venta_mantenimiento_activo == 1) {
         $inicio_renovacion_carbon = Carbon::now()->toDateString();
         $vencimiento_renovacion_carbon = Carbon::parse($inicio_renovacion_carbon)->addMonths($mtto_catalogo->meses)->toDateString();
     } elseif ($mtto_detalle->vencido == 0 and $mtto_detalle->venta_mantenimiento_activo == 1) {
         $inicio_renovacion_carbon = $vencimiento_actual_carbon->addDays(1)->toDateString();
         $vencimiento_renovacion_carbon = Carbon::parse($inicio_renovacion_carbon)->addMonths($mtto_catalogo->meses)->toDateString();
     }
     /*"precio"." ".$precio->monto*1.16." "."vencimiento actual "." ".$vencimiento_actual." ". "vencimiento contratado "." ". $vencimiento_renovacion_carbon ." "."meses"." ".$mtto_catalogo->meses." "."inicio del nuevo mantenimiento "." ". $inicio_renovacion_carbon;*/
     //registrar venta
     $venta = new Venta();
     $venta->cliente_id = Input::get('cliente_id');
     $venta->folio_solicitud = Input::get('folio_solicitud');
     $venta->total = $precio->monto * Input::get('iva');
     if (Input::get('comentarios')) {
         $venta->comentarios = Input::get('comentarios');
     }
     $venta->save();
     //registrar detalle de venta
     $venta_producto = new VentaProducto();
     $venta_producto->venta_id = $venta->id;
     $venta_producto->producto_id = Input::get('producto_id');
     $venta_producto->cantidad = 1;
     $venta_producto->total = $precio->monto * Input::get('iva');
     $venta_producto->precio_unitario = $precio->monto;
     $venta_producto->iva = (Input::get('iva') - 1) * 100;
     $venta_producto->save();
     //registra venta de mantenimiento
     $venta_mantenimiento = new VentaMantenimiento();
     $venta_mantenimiento->venta_producto_id = $venta_producto->id;
     $venta_mantenimiento->empleado_id = 4;
     $venta_mantenimiento->lote_id = Input::get('lote_id');
     $venta_mantenimiento->fecha_inicio = $inicio_renovacion_carbon;
     $venta_mantenimiento->fecha_fin = $vencimiento_renovacion_carbon;
     $venta_mantenimiento->nuevo = 0;
     $venta_mantenimiento->activo = 1;
     $venta_mantenimiento->save();
     //genera recibo
     $recibo = new Recibo();
     $recibo->venta_id = $venta->id;
     $recibo->fecha_limite = $inicio_renovacion_carbon;
     $recibo->monto = $venta_producto->total;
     $recibo->cancelado = 0;
     $recibo->pagado = 1;
     $recibo->mensajero = 0;
     $recibo->save();
     //registra pago(s)
     if (Input::has('efectivo')) {
         $efectivo = Input::get('efectivo');
         $pago_efectivo = new Pago();
         $pago_efectivo->recibo_id = $recibo->id;
         $pago_efectivo->forma_pago_id = 1;
         $pago_efectivo->monto = $efectivo;
         $pago_efectivo->usuario_id = Auth::user()->id;
         $pago_efectivo->save();
     }
     if (Input::has('credito')) {
         $efectivo = Input::get('credito');
         $pago_efectivo = new Pago();
         $pago_efectivo->recibo_id = $recibo->id;
         $pago_efectivo->forma_pago_id = 2;
         $pago_efectivo->monto = $efectivo;
         $pago_efectivo->usuario_id = Auth::user()->id;
         $pago_efectivo->save();
     }
     if (Input::has('debito')) {
         $efectivo = Input::get('debito');
         $pago_efectivo = new Pago();
         $pago_efectivo->recibo_id = $recibo->id;
         $pago_efectivo->forma_pago_id = 5;
         $pago_efectivo->monto = $efectivo;
         $pago_efectivo->usuario_id = Auth::user()->id;
         $pago_efectivo->save();
     }
     //actualiza registro anterior de venta de mantenimiento ya que dejará de ser "nuevo"
     $venta_mantenimiento_actualiza = VentaMantenimiento::find($mtto_detalle->id);
     $venta_mantenimiento_actualiza->nuevo = 0;
     $venta_mantenimiento_actualiza->activo = 0;
     $venta_mantenimiento_actualiza->save();
     //actualiza el ultimo consecutivo de folios de mantenimiento en tabla de configuracion general
     $config_gral = ConfiguracionGeneral::find(Input::get('config_gral_id'));
     $config_gral->folio_mtto = Input::get('folio_solicitud');
     $config_gral->save();
     return Redirect::to('mantenimiento');
 }
     break;
 case 'registrar plan pagos':
     $ap = Registro::listaActividadesPlanificacion($usuario);
     $actividadesPlanificacion = '<select class="btn-primary" name="actividades" multiple="multiple">';
     for ($i = 0; $i < count($ap); $i++) {
         $f = new FechaRealizacion($ap[$i][0]);
         $actividadesPlanificacion .= '<option data-fecha="' . $f->getFecha() . '" value="' . $ap[$i][1] . '">' . $ap[$i][1] . '</option>';
     }
     $actividadesPlanificacion .= '</select>';
     $e = Entregable::listaEntregables($usuario);
     $entregables = '<select class="btn-primary" name="entregables" multiple="multiple">';
     for ($i = 0; $i < count($e); $i++) {
         $entregables .= '<option value="' . $e[$i] . '">' . $e[$i] . '</option>';
     }
     $entregables .= '</select>';
     $p = new Precio($usuario);
     $costo = $p->getPrecio();
     echo '<div id="registroPago">
               <legend>Registro de pago para el plan de pagos</legend>
               <div class="bs-callout bs-callout-info">
                   <h4>Nota</h4>
                   <p>
                     Registre un pago para su plan de pagos...
                   </p>
               </div>
               <form class="form-horizontal"> 
                   <div class="form-group">
                       <label class="col-md-3 control-label">Actividad</label>
                       <div class="col-md-6">
                           ' . $actividadesPlanificacion . '                                       
                       </div>
 public function getCatalogo($cat)
 {
     $rol = Auth::user()->rol_id;
     $data[] = null;
     $data['catalogo'] = $cat;
     switch ($cat) {
         case 'Almacen':
             $data['almacenes'] = Almacen::all();
             break;
         case 'Cliente':
             $data['clientes'] = DB::table('cliente')->leftJoin('usuario', 'usuario.id', '=', 'cliente.usuario_id')->leftJoin('usuario as usuarioAg', 'usuarioAg.id', '=', 'cliente.agente_id')->leftJoin('Nivel_Descuento', 'Nivel_Descuento.id', '=', 'cliente.nivel_descuento_id')->select('cliente.id', 'cliente.rfc', 'cliente.nombre_cliente', 'cliente.paterno', 'cliente.materno', 'cliente.nombre_comercial', 'cliente.razon_social', 'cliente.numero_cliente', 'cliente.agente_id as idAgente', 'cliente.nivel_descuento_id as idDescuento', 'usuario.usuario', 'usuario.email', 'usuario.id as idUsuario', 'usuarioAg.usuario as agente', 'nivel_descuento.descripcion as descripcion')->get();
             break;
         case 'Comercializador':
             $data['comercializadores'] = Comercializador::all();
             break;
         case 'NivelDescuento':
             $data['descuentos'] = NivelDescuento::all();
             break;
         case 'Estados':
             $data['estados'] = Estado::all();
             $data['paises'] = Pais::all();
             break;
         case 'Familias':
             $data['familias'] = Familia::all();
             $data['descuentos'] = DB::table('descuento')->where('estatus', '=', '1')->get();
             break;
         case 'FormaPago':
             $data['formasPago'] = FormaDePago::all();
             break;
         case 'Importador':
             $data['importador'] = Importador::all();
             break;
         case 'Mensajeria':
             $data['Mensajeria'] = Mensajeria::all();
             break;
         case 'Municipios':
             $data['municipios'] = Municipio::all();
             $data['estados'] = Estado::all();
             break;
         case 'NivelDescuento':
             $data['nivelDescuento'] = nivel_descuento::all();
             break;
         case 'Pais':
             $data['pais'] = Pais::all();
             break;
         case 'Precio':
             $data['precio'] = Precio::all();
             break;
         case 'Producto':
             $data['producto'] = DB::table('producto')->leftJoin('unidad_medida as uMedida', 'uMedida.id', '=', 'producto.unidad_medida_id')->leftJoin('importador', 'importador.id', '=', 'producto.importador_id')->leftJoin('almacen', 'almacen.id', '=', 'producto.almacen_id')->leftJoin('familia', 'familia.id', '=', 'producto.familia_id')->select('producto.id as idProd', 'producto.clave', 'producto.nombre', 'producto.numero_articulo', 'producto.ean_code', 'producto.color', 'producto.numero_color', 'producto.unidad_medida_id', 'producto.piezas_paquete', 'producto.dimensiones', 'producto.piezas_pallet', 'producto.total_piezas', 'producto.foto', 'producto.importador_id', 'producto.almacen_id', 'producto.familia_id', 'producto.estatus_web', 'producto.estatus', 'uMedida.descripcion as descrUMedida', 'importador.nombre', 'almacen.clave as cveAlmacen', 'familia.descripcion as descrFamilia')->get();
             break;
         case 'Proveedor':
             $data['proveedor'] = DB::table('proveedor')->leftJoin('comercializador', 'comercializador.id', '=', 'proveedor.comercializador_id')->select('proveedor.id as id', 'proveedor.nombre', 'proveedor.nombre_comercial', 'proveedor.razon_social', 'proveedor.estatus', 'proveedor.comercializador_id as idComercializador', 'comercializador.nombre as comercializador')->get();
             break;
         case 'Rol':
             $data['rol'] = Rol::all();
             break;
         case 'UnidadMedida':
             $data['unidadMedida'] = UnidadMedida::all();
             break;
         case 'Usuario':
             $data['usuario'] = Usuario::all();
             break;
         default:
             # code...
             break;
     }
     return View::make('admin/catalogo', $data);
 }
        for ($i = 0; $i < count($entregables); $i++) {
            $entregable = new Entregable($usuario, $entregables[$i], $descripciones[$i]);
            $entregable->insertarBD();
        }
        $planificacion->setEstado('registrar costo total proyecto');
        $planificacion->modificarBD();
        echo '<div class="alert alert-success">
				       <strong>Entregables registrados...</strong>
				   </div>
				   <script>$("#page-wrapper").load("vista-registrar-planificacion.php");</script>';
        break;
    case 'registrar costo total proyecto':
        $costo = $_POST['costo'];
        $porcentajeA = $_POST['porcentajeA'];
        //$porcentajeA = 70;
        $precio = new Precio($usuario, $costo);
        $precio->setPorcentajeA($porcentajeA);
        $precio->insertarBD();
        $planificacion->setEstado('registrar plan pagos');
        $planificacion->modificarBD();
        echo '<div class="alert alert-success">
				       <strong>Costo total proyecto registrado...</strong>
				   </div>
				   <script>$("#page-wrapper").load("vista-registrar-planificacion.php");</script>';
        break;
    case 'registrar plan pagos':
        $actividades = explode(',', $_POST['actividades']);
        $fechas = explode(',', $_POST['fechas']);
        $porcentajes = explode(',', $_POST['porcentajes']);
        $montos = explode(',', $_POST['montos']);
        $entregables = explode('|', $_POST['entregables']);
예제 #14
0
 public function run()
 {
     DB::table('Precios')->delete();
     Precio::create(array('nombre' => 'Lunes, Martes y Jueves', 'tipo' => '3D', 'precio' => '35000', 'funcionarioId' => '1'));
 }